Быстро и легко: трейикон с питоном?
Вопрос
Мне просто нужен быстрый пример того, как легко разместить значок с Python в моем системном трее.Это означает: я запускаю программу, окно не отображается, в панели задач отображается только значок в трее (у меня есть файл png), и когда я щелкаю по нему правой кнопкой мыши, появляется меню с некоторыми параметрами (и когда я нажимаюна опции запускается функция). Это возможно?Мне вообще не нужно никакого окна ...
Примеры / фрагменты кода ДЕЙСТВИТЕЛЬНО приветствуются!: D
Решение
Для Windows и Gnome
Вот и все!wxPython - это бомба.Адаптировано из исходного кода моего приложения Feed Notifier .
родовое словоДругие советы
wx.PySimpleApp устарел, вот как использовать вместо него wx.App
Мне потребовалось время, чтобы понять это, поэтому я решил поделиться.wx.PySimpleApp устарел в wxPython 2.9 и более поздних версиях.Вот оригинальный сценарий FogleBird, использующий вместо этого wx.App.
родовое словоЕсли вы можете гарантировать окна и не хотите вводить тяжелые зависимости wx, вы можете сделать это с помощью расширения pywin32 .
См. также этот вопрос .
Для Ubuntu
GenracodicetagpreКросс-платформенный
Версия 2018
GenracodicetagpreАльтернатива, если вы пытаетесь запустить программу на Python в фоновом режиме, вы можете запустить ее как службу.Посмотрите этот рецепт активного состояния, он довольно полезен.Я считаю, что один из вариантов - преобразовать ваше приложение в exe с помощью py2exe или pyinstall.
Для примера обратитесь к этой теме -> вопрос wx.
wxPython "classic" -> [new API] wxPython 'Phoenix' (Py3)
Да. На wiki.wxpython.org есть кроссплатформенный пример, который я тестировал с помощью python 2.7 (установка minconda) на macOS High Sierra (10.13.3), Windows 7 и gnome 3 / centos7. Это здесь (не обращайте внимания на заголовок страницы): https://wiki.wxpython.org/Custom%20Mac%20OsX% 20Dock% 20Bar% 20Icon
Для python 3.6 необходимы небольшие моды:
- необходимо импортировать wx.adv
- wx.TaskBarIcon становится wx.adv.TaskBarIcon
- wx.IconFromBitmap становится wx.Icon
Gnome 3 требует установки TopIcons Plus.
Поскольку вы не хотите, чтобы окно отображалось («окно не отображается, только значок на панели задач»), просто закомментируйте следующую строку (хотя вы все равно хотите сохранить родительский элемент wx.Frame): родовое слово
А поскольку вы хотите использовать свой собственный значок .png, удалите изображение WXPdemo и встроенные изображения и замените
родовое словос, например
родовое словоПо моему опыту, это станет хорошим началом для дальнейшей адаптации или расширения.