Classe: wxMenuBar().
Une barre de menus est une série de menus accessibles par le haut de la frame.
Pour répondre à une sélection du menu, il faut un gestionnaire d'évènements wx.wxEVT_MENU, positionné dans le cadre qui contient la barre de menus.
Si vous avez une barre d'outils qui utilise les mêmes identifiants que vos entrées wx.wxEVT_MENU, les événements de la barre d'outils seront également générés par vos gestionnaires d'événements wx.wxEVT_MENU.
Sous Windows, si vous découvrez que les raccourcis du menu (par exemple, Alt-F pour afficher le menu fichier) ne fonctionnent pas, vérifiez tous les événements wx.wxEVT_CHAR.
Et si vous n'avez pas appelé event.Skip() pour les événements en question, alors les raccourcis du menu peuvent ne pas fonctionner correctement.
Mais en principe, avec wxLua vous n'aurez pas à vous préocuper de tout ça!... Lua s'occupe de tout....
Le constructeur de cette classe, se présente de la façon suivante:
On créer d'abord une barre de menus vide.
menuBar = wx.wxMenuBar()
Puis on la remplit avec les menus définis précédement.
menuBar:Append(objMenu1, "nomObjMenu1") menuBar:Append(objMenu2, "nomObjMenu2") ...etc.
Et on affecte le barre de menus à la frame.
frame:SetMenuBar(menuBar)
Vous trouverez ci-dessous, la liste des méthodes implémentées par wxLua 2.8.10.
Append(objetMenu, "titre") | Ajoute un objetMenu sous le nom "titre" |
Check(id, true) | Coche ou décoche un élément du menu. |
Enable(id, true) | Active ou désactive (en gris) un élément du menu. |
FindMenu("titre") | Recherche l'index du menu avec le titre "titre" ou wxNOT_FOUND si aucun menu n'est trouvé. |
FindMenuItem("menu", "item") | Recherche l'id du menu pour un "menu" / "item", par paire. |
FindItem(id, objetMenu) | Recherche l'item du menu associé à "id". |
GetHelpString(id) | Obtient la chaîne d'aide associé à l'id du menu. |
GetLabel(int id) | Obtient le label associé à l'id du menu. |
GetLabelTop(int pos) | Renvoie le label du menu de niveau supérieur. |
GetMenu(menuIndex) | Retourne le menu situé à "menuIndex" (basé sur zéro). |
GetMenuCount() | Retourne le nombre de menus dans ce menu. |
Insert (pos, objMenu, "titre") | Insère un menu à la position donnée dans la barre de menu. |
IsChecked(id) | Détermine si un élément est coché. |
IsEnabled(id) | Détermine si un élément est activé. |
Refresh() | Redessine la barre de menu. |
Remove(pos) | Enlève le menu de la barre de menu et retourne l'objet menu - mais ne supprime pas l'objet. |
Replace(pos, objMenu, "titre") | Remplace le menu à la position donnée par un autre. |
SetHelpString(id, "aide") | Définit la chaîne d'aide associé à l'id du menu. |
SetLabel(id, "label") | Définit le label situé à l'id du menu. |
SetLabelTop(pos, "label") | Définit le label du menu de niveau supérieur. |
require("wx") -- inutile si on utilise wxluafreeze.exe local frame = nil function main() -- Création d'une frame. frame = wx.wxFrame(wx.NULL, wx.wxID_ANY, "wxMenuBar") frame:Centre() -- Création des menus. local menu1 = wx.wxMenu(); local menu2 = wx.wxMenu() local menu3 = wx.wxMenu(); local menu4 = wx.wxMenu() local menu5 = wx.wxMenu() -- Céation de la barre de menus. local menuBar = wx.wxMenuBar() -- On affecte les menus à la barre de menus. menuBar:Append(menu1, "Fichier") menuBar:Append(menu2, "Edition") menuBar:Append(menu3, "Affichage") menuBar:Append(menu4, "Outils") menuBar:Append(menu5, "Aide") -- Affectation de la barre de menus à la frame. frame:SetMenuBar(menuBar) -- Création d'une barre d'état avec un seul champ.(1) frame:CreateStatusBar(1) frame:SetStatusText("Welcome dans ce petit exemple.") frame:Show(true) end main() wx.wxGetApp():MainLoop()
Ce qui donne comme résultat.