Найти в Дзене
programmer's notes (python and more)

Программирование на python. PyQt5 и сворачивание окна в трей

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

Приложения на основе библиотеки PyQt на Python | programmer's notes (python and more) | Дзен
Библиотека tkinter | programmer's notes (python and more) | Дзен

Сворачиваем приложение PyQt5 с помощью QSystemTrayIcon

Ранее была статья, посвящённая той же теме, но для оконных приложений tkinter. Ну библиотека PyQt тем и славится, что там есть всё (как в Греции). Но я написал программу так, что бы её функциональность была такой же, как в программе на основе tkinter. Ну, а дальше уже творчество читателей.

Окно программы имеет такой же внешний вид и как и окно в первой статье (см. Рисунок 1).

Рисунок 1. Окно программы для с примером сворачивания в трей
Рисунок 1. Окно программы для с примером сворачивания в трей

Скриншот текста программы см. ниже на рисунке 2

Рисунок 2. Программа работы с треем. Весь текст программы см. ниже по ссылке
Рисунок 2. Программа работы с треем. Весь текст программы см. ниже по ссылке
primer388.py

Пояснения к программе. Будем пояснять только, что я не описывал ранее в разделе PyQt5.

  • Ну во-первых нужно подключить класс QSystemTrayIcon, она является главной для работы с треем.
  • Далее создаём пиктограмму. Пиктограмму создаём средствами библиотеки PyQt5. Я уже говорил, что там всё есть. В начале создаём пустую картинку QImage(), затем её закрашиваем Image.fill(), ну а потом объект QPixmap() и саму пиктограмму QIcon(). Не много длинновато, но короче я не знаю или знал, но забыл :)
  • Создаём объект класса QSystemTrayIcon() и привязываем к нему пиктограмму setIcon().
  • Далее создаём объект действие QAction(), пункты меню и, что будет вызываться при их выборе. Соответственно два метода show1() и clos(). Но последний метод у нас уже был - он должен срабатывать при нажатии кнопки Выход.
  • Далее указываем как активизируется меню. Вот это важно. Если мы хотим, чтобы и по правой и по левой кнопки мыши, то нужно делать как у меня в программе. Если только по правой, то self.tr.activated.connect(self.sh) можно опустить. Соответственно метод для активизации sh() тоже нужно подготовить.
  • При сворачивании окна в трей (метод tray()), мы скрываем окно и показываем пиктограмму в трее.
  • При выборе в меню пиктограммы Открыть мы (метод show1()) скрываем пиктограмму и показываем окно.

Ну и всё!

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

Свернуть то вы свернули, но не туда
Свернуть то вы свернули, но не туда