petite remarque :
je suis en train d'apprendre comment ajouter une aide contextuel, et
j'ai constaté que pour ajouter un évènement au menu, on peut utiliser
la méthode Bind de la classe sysTrayIcon,
il n'est pas nécessaire (sauf si le code l'implique ) de pointer sur le
menu général ou l'un de ses sous menus .
soit :
gui.mainFrame.sysTrayIcon.menu.Bind(wx.EVT_MENU, handler, menuItem)
équivaut à :
gui.mainFrame.sysTrayIcon.Bind(wx.VT_MENU, handler, menuItem)
ps : les instructions qui tiennent sur très peu de ligne ne sont jamais
des copié collé afin que cela entre plus facilement dans les doigts.
je peux faire attention, il y aura toujours des fautes de frappe .
Le 07/06/2022 à 07:55, yannick a écrit :
salut !
un petit tuto pour encourager ...
(à faire dans la console)
on va ajouter un item dans le menu qui ouvrira la boite de dialogue "à propos de nvda"
menu, dialogue... on a à faire à de l'interface graphique .
on va donc importer le module gui que je suppose être l'acronyme de graphical user interface
import gui
puis on va pointer sur la fenêtre général de nvda, on va déjà utiliser la variable menu
menu = gui.mainFrame
à ce statde, on cherche à ajouter un item de menu, il s'agit du menu dans la zone de notification, on écrit donc :
menu = gui.mainFrame.sysTrayIcon
ici on a plusieurs types de menu :
le menu général , (menu), le menu outils (toolsMenu) et, le menu des préférences (prefferencesMenu)etc..
pour le retrouver dès que l'on fera nvda+n, on va l'ajouter dans le menu général ,
on va donc pointer sur ce menu :
menu =gui.mainFrame.sysTrayIcon.menu
ce n'est pas fini on va maintenant appelé la méthode Append de ce menu en renseignant le paramètre id pour identifier cet item, puis on va ajouter du texte :
menuItem = gui.mainFrame.sysTrayIcon.Append(id=wx.ID_ANY, item="boîte dedialogue ' a propos'")
et hop on a ajouter l'item de menu !
vous pouvez aller vérifier !
mais ce n'est pas fini , on va lié cet item à une action, pour se faire on va utiliser la variable menu :
d'abord, on va pointer sur le menu général, puis on utilisera la méthode Bind (=lié), cette méthode prendra 3 paramètres :
1. le type de l'évènement
2. la fonction à lié
3. l'item
ci dessous on affecte une variable, c'est la fonction que l'on souhaite executer.
fonction = gui.mainFrame.onAboutCommand
et voici l'instruction pour lier :
menu.Bind(wx.EVT_MENU,fonction, menuItem)