1K подписчиков

Программирование на языке Python. Библиотека PyQT5, оконное приложение с кнопкой (QPushButton)

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

Кнопка выхода в PyQT5 в оконном приложении

Продолжим изучать оконные приложения в PyQT5. Сегодня у нас появится кнопка.

Сама кнопка это все лишь объект класса QPushButton. При создании кнопки указывает объект-окно, где она будет располагаться (второй параметр). Ниже представлен пример окна с кнопкой.

Текст программы см. ниже по ссылке
Текст программы см. ниже по ссылке

Несколько пояснений по программе.

  • Обратим внимание на QPushButton('Кнопка\nвыхода', self). Это создание кнопки и привязка её к окну (self соответствует экземпляру win, производному QWidget). Далее определяются её положение и размеры.
  • Самая важная строка self.btn.clicked.connect(self.clos). Это соединение сигнала о нажатии кнопки с методом, который будет обрабатывать это нажатие. В методе self.clos() выполняется метод, закрывающий окно (self.close()). Кнопка, таким образом, заканчивает работу приложения.

Результат выполнения программы см. на рисунке 1.

Рисунок 1.
Рисунок 1.

В приложение ниже, создаётся класс bclose, который является наследником класса QPushButton. Соответственно кнопка создаётся как объект класса bclose.

Текст программы см. ниже по ссылке
Текст программы см. ниже по ссылке

Пояснения к программе.

  • Тут важно понять как осуществляется привязка кнопки к окну. При создании кнопки первым параметром передаётся объект окна (self). В конструкторе кнопки __init__() это второй параметр wg. А далее super().__init__(wg) это и есть привязка кнопки к окну. А далее в bt_ui() определяются параметры кнопки.
  • Ещё одно интересное нововведение. Мы фиксируем размеры окна с помощью self.setFixedSize().
  • Наконец обработка нажатия кнопки. Здесь использован другой подход, нежели в предыдущем примере. Переопределяется метод-событие mousePressEvent() класса QPushButton. Любой щелчок мыши вызывает данный метод. Поскольку мы должны знать какое на самом деле событие произошло, т.е. какая кнопка нажата, то на это есть проверка if e.button() == Qt.LeftButton.

Получившееся окно с кнопкой и по виду и по функциональности такое-же что на рисунке 1.

Ну, пока всё!

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

Делать можете что угодно, но не нажимайте на эту кнопку
Делать можете что угодно, но не нажимайте на эту кнопку