Доброго времени суток, читатели, зрители моего канала programmer's notes. Не забывайте подписываться и писать свои комментарии к моим статьям и видео.
Продолжаем изучать PyQt5 (QLabel и QComboBox)
Продолжаем идти по разным элементам окон, какие представлены в PyQT5. Сегодня QLabel и QComboBox.
Программа довольно длинная, поэтому как и прежде скриншоты будут представлять отдельные фрагменты. Но ниже ссылка на текст программы.
Программа создаёт окно, на нём три элемента: QPushButton - кнопка выхода, QLabel - ярлык, QComboBox - выпадающий список.
Цвет ярлыка формируется случайно (см. функцию frand()). Затем щелчок по ярлыку меняет его цвет случайно. В выпадающем списке три элемента: "Красны", "Зелёный", "Синий". Выбирая элемент мы меняем цвет ярлыка.
Ниже представлен фрагмент с классом окна. В initUI() не только определяются параметры окна, но и добавляются элементы окна. Как вы уже поняли мне нравится создавать элемента на основе классов, которые наследую классы библиотечных элементов. В моём мировоззрении я ощущаю больший контроль над элементами. Ну это чисто субъективное.
Ниже класс кнопки выхода. Обрабатывается событие нажатия кнопки мыши QPushButton.mousePressEvent(). Ну с этим вы уже знакомы. Используем именно унаследованное событие, а не сигнал.
Ниже класс библиотечного элемента Ярлык (QLabel). При создании определяется цвет букв, который не будет меняться и цвет фона на основе трех случайных величин: r, g, b. Для обработки щелчка мыши по ярлыку унаследуем событие mouseReleaseEvent(). Это отпускание кнопки мыши. Ну, а далее мы определяем какая это кнопка: if e.button()==Qt.LeftButton:. Если это левая кнопка, то случайно меняем цвет ярлыка.
Ниже представлен класс-наследник от QComboBox - выпадающий список. Обращу внимание на следующие моменты:
- Метод QComboBox.addItem() добавляет элемент к списку.
- Метод QComboBox.setCurrntIndex() определяет текущий элемент. Элементы нумеруются от нуля. -1 - указывает, что элемент текущий не определён.
- self.currentIndexChanged.connect(self.chng) - указываем, что сигнал посылается в случае изменения текущего элемента QComboBox (текущего индекса).
- Наконец рассмотрим метод chng(). Здесь используется метод QComboBox.currentText(), который возвращает значение текущего элемента.
Результат выполнения программы см. на рисунке 1.
Это ссылка на весь текст программы
Ну, пока всё!
Пишите свои предложения и замечания, и занимайтесь программированием, а также проектированием баз данных, хотя бы для поддержания уровня интеллекта.