[script nvda] Re: tuto : ajouter un item de menu

  • From: yannick <philaos31@xxxxxxx>
  • To: scriptnvda@xxxxxxxxxxxxx
  • Date: Wed, 8 Jun 2022 16:35:36 +0200

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)






Other related posts: