Je suis en train de concevoir une application que je veux exécuter en arrière-plan. Il n'y a pas d'interaction de l'utilisateur nécessaire, donc je veux que l'application s'exécute de manière invisible pour une icône de la barre des tâches. Je veux que cette icône ait un menu qui ouvre juste les fichiers de configuration/aide dans le bloc-notes. Quelqu'un pourrait-il me diriger dans la bonne direction ou donner un exemple?wxpython systray icône menu
Répondre
Vous voulez le wx.TaskBarIcon:
http://docs.wxwidgets.org/stable/wx_wxtaskbaricon.html
La démonstration a wxPython exemple de code que vous pouvez regarder.
Avez-vous envisagé d'exécuter cette application en tant que service Windows? De nombreux utilisateurs considèrent une icône de la barre d'état système avec peu ou pas de fonctionnalités comme une nuisance. Vous pouvez toujours fournir des liens vers des fichiers d'aide/de configuration en tant qu'entrée du menu Démarrer.
Le python win32 extensions package doit prendre en charge les services python.
Bien sûr, il existe toujours des raisons pour lesquelles vous souhaiterez peut-être l'utiliser comme icône de la barre d'état système. Je suis désolé de ne pas avoir d'expérience avec ça.
Vous pouvez probablement le faire plus proprement mais j'ai utilisé quelques exemples il y a quelques temps j'ai été capable de créer moi-même une classe pour gérer la construction de base d'une icône de la barre des tâches.
TaskBarIcon.py
import wx
ID_SHOW_OPTION = wx.NewId()
ID_EDIT_OPTION = wx.NewId()
class Icon(wx.TaskBarIcon):
def __init__(self, parent, icon, tooltip):
wx.TaskBarIcon.__init__(self)
self.SetIcon(icon, tooltip)
self.parent = parent
self.Bind(wx.EVT_TASKBAR_LEFT_DCLICK, self.OnLeftDClick)
self.CreateMenu()
def CreateMenu(self):
self.Bind(wx.EVT_TASKBAR_RIGHT_UP, self.OnPopup)
self.menu = wx.Menu()
self.menu.Append(ID_SHOW_OPTION, '&Show Option 1')
self.menu.Append(ID_EDIT_OPTION, '&Edit Option 2')
self.menu.AppendSeparator()
self.menu.Append(wx.ID_EXIT, 'E&xit')
def OnPopup(self, event):
self.PopupMenu(self.menu)
def OnLeftDClick(self, event):
if self.parent.IsIconized():
self.parent.Iconize(False)
if not self.parent.IsShown():
self.parent.Show(True)
self.parent.Raise()
Dans init() Frame , ajoutez les deux lignes ci-dessous:
self.TrayIcon = tbi.Icon(self, wx.Icon("C:\\YourIcon.png", wx.BITMAP_TYPE_PNG), "ToolTip Help Text Here")
self.Bind(wx.EVT_ICONIZE, self.OnIconify)
Et maintenant, il suffit d'ajouter cette fonction à votre image et vous devez être réglé :
def OnIconify(self, event):
self.Hide()
N'oubliez pas de modifier les éléments de l'icône c jeune fille en fonction de vos besoins.
- 1. Icône de dock de l'application dans wxPython
- 2. shell menu Windows contextuel icône
- 3. Le menu wxPython n'affiche pas l'image
- 4. wxpython désactiver le menu contextuel dans TextCtrl
- 5. WPF - Liaison à une icône de menu
- 6. Icône de menu Démarrer de ClickOnce
- 7. Delphi: Réduire l'application à systray
- 8. Icône SysTray non visible après le redémarrage d'un programme exécuté en tant qu'administrateur
- 9. Menu contextuel Systray - pourquoi mes commandes ne sont-elles pas activées?
- 10. Native C++ Systray questions d'application
- 11. wxPython: Network Graph - cliquable avec le menu contextuel - Any pkgs?
- 12. Ajout d'éléments de menu système dans wxPython/wxWidgets
- 13. Pourquoi est-ce que je vois plusieurs icônes Systray?
- 14. Boîte de dialogue Qt sans icône de fenêtre (menu système)
- 15. firefox addon: ajouter une icône au menu contextuel
- 16. .Net 4 Sortie de menu comme une icône déroulante
- 17. Menu contextuel du système Icône non transparente comme WinRAR
- 18. Comment afficher une icône dans un élément de menu?
- 19. Bureau RibbonUI ApplicationMenu Icône
- 20. jQueryUI texte widget icône plus
- 21. Comment utiliser py2exe icon_resources dans l'application wxPython?
- 22. wxpython wx.EVT_LEFT_DOWN
- 23. wxpython GetStatusText()
- 24. wxpython PyGridTableBase
- 25. wxPython dialogs
- 26. Exécution wxPython
- 27. wxpython compilation
- 28. créer un onglet menu
- 29. new Windows 7 systray - comment afficher les informations aux utilisateurs maintenant
- 30. Click-Once Alternative Icône Emplacements