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