Найти тему
programmer's notes (python and more)

Программирование на языке Python. Библиотека PyQT5. Развиваем тему оконных приложений (QLineEdit)

Доброго времени суток, читатели, зрители моего канала programmer's notes. Не забывайте подписываться и писать свои комментарии к моим статьям и видео.

Ещё об элементах окна, а также палитре в библиотеке PyQT5 (QLineEdit)

Вот не люблю слово виджет. Будем окна называть окнами. И так, у нас очередная статья по библиотеке PyQT5. Я потихоньку добавляю элементы и механизмы работы с оконными приложениями. Сегодня у нас уже две кнопки, поле ввода и два способа задания цветов окна и элементов окна. Кстати не все способы, но подождём до следующих статей.

В программе ниже, есть 1. Кнопка выхода. 2. Поле редактирования. 3. Копка, которая меняет текст в поле редактирования - заглавные буквы на прописные и обратно.

Поскольку программа длинная, я разделили её на несколько скриншотов. Текст же программы можно получить по ссылке ниже всех скриншотов.

Класс окна
Класс окна

В главном окне (впрочем оно и единственное) мы устанавливаем две кнопки и поле ввода (редактирования). Классы для этих элементов определены ниже.

Классы кнопок
Классы кнопок

На скриншоте представлены классы кнопок, как и следовала из предыдущей статьи они наследуют от библиотечного класса QPushButton. Обратите внимание на вторую кнопку. По её нажатию обрабатывается содержимое поля ввода. Обращаем внимание на параметр wg, это объект окно. При создании элементов окна туда передаётся этот объект (указатель на него). Через этот указатель мы получаем доступ к любым элементам окна (например self.wg.ged - доступ к элементу поле ввода).

Класс поля ввода и основная программа
Класс поля ввода и основная программа

В классе поля редактирования (QLineEdit) есть один примечательный момент - определение цветов поля редактирования. Это строка

self.setStyleSheet("color:rgb(200,0,250);background-color:rgb(10,10,100)")

где задаётся цвет фона и цвет букв. Как видим, здесь мы имеем web-подобное определение цветов. Вместо функции rgb() можно использовать словесное определение цветов. Например

self.setStyleSheet("color:'Red';background-color:'Green'")

Относительно цветов в основной программе есть примечательные строки

pl = QtGui.QPalette()
pl.setColor(QtGui.QPalette.Window, QtGui.QColor(30, 100, 100))
pl.setColor(QtGui.QPalette.Button, QtGui.QColor(30, 200, 200))
QApplication.setPalette(pl)

данные строки устанавливают цвета фона для окна и кнопок "по умолчанию". Здесь задаются фоны окна и кнопок. Но можно менять цвета букв,

например так

pl.setColor(QtGui.QPalette.ButtonText, QtGui.QColor(0, 0, 200))


Ниже ссылка на весь текст программы

primer212.py

Окно программы см. ниже

Окно программы
Окно программы

Ну, пока всё!

Пишите свои предложения и замечания, и занимайтесь программированием, а также проектированием баз данных, хотя бы для поддержания уровня интеллекта.

Далась вам эта палитра. Есть цвет чёрный и белый, а остальное от лукавого
Далась вам эта палитра. Есть цвет чёрный и белый, а остальное от лукавого