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.
