Classe: wxSingleChoiceDialog().
Cette classe présente une boîte de dialogue qui affiche une liste d'éléments, et permet à l'utilisateur d'en sélectionner un.
Double-cliquer sur un élément équivaut à un simple clic sur le bouton OK.
simpleChoix = wx.wxSingleChoiceDialog( wxWindow * parent, = wx.NULL, const wxString & message, = "Ceci est un petit message.", const wxString & caption, = "Titre de la boîte de dialogue", const wxString * choices, = , long style, = , const wxPoint & pos = wx.wxDefaultPosition )
parent est la fenêtre qui détient la boite de dialogue.
choices est un tableau ou une liste de noms pouvant être choisis.
style La valeur par défaut est équivalent à wx.wxDEFAULT_DIALOG_STYLE + wx.wxOK + wx.wxRESIZE_BORDER + wx.wxCANCEL + wx.wxCENTRE.
pos est la position de la boîte de dialogue. (non utilisé sous MS Windows)
Vous trouverez ci-dessous, la liste des méthodes implémentées par wxLua 2.8.10.
GetSelection() | Retourne l'index de l'élément sélectionné. |
SetSelection(x) | Définit l'index de l'élément sélectionné initialement. le premier nom de la liste correspond au N°0. |
GetStringSelection() | Retourne le nom de la ligne sélectionnée. |
ShowModal() | Permet de sélectionner les boutons wx.wxID_OK, et wx.wxID_CANCEL. |
Destroy()* | Détruit la boîte de dialogue en toute sécurité. |
* Destroy(): Utilisez cette fonction au lieu de supprimer l'opérateur.
Cadres et boîtes de dialogues ne sont pas détruits immédiatement lorsque cette fonction est appelée - ils sont ajoutés à la liste des fenêtres à supprimer plus tard, lorsque tous les événements de la fenêtre auront été traités.
Vous trouverez dans le code ci-dessous, un appel à wxArrayString() qui construit un conteneur afin d'y stocker des objets de type chaîne de caractères.
require("wx") -- inutile si on utilise wxluafreeze.exe -- Création d'un conteneur pour stocker des strings. local liste = wx.wxArrayString() -- Création de la liste. liste:Add("un") liste:Add("deux") liste:Add("trois") liste:Add("quatre") liste:Add("cinq") liste:Add("six") -- Création de la boîte de dialogue. local dialog = wx.wxSingleChoiceDialog(wx.NULL, "Choisissez un chiffre.", "Boîte de sélection", liste) -- Sélection automatique. dialog:SetSelection(3) -- la première ligne = 0 if (dialog:ShowModal() == wx.wxID_OK) then wx.wxMessageBox(dialog:GetStringSelection(), "votre choix") dialog:Destroy() else dialog:Destroy() end -- Démarrage de l'application. dialog:Show(true) wx.wxGetApp():MainLoop()
Ce qui donne comme résultat.