wxLua et wxWidgets:
Mode d'emploi.
 wxWidgets
Lua
Flèche gauche accueil wxWidgets lua notes Flèche droite
Description détaillée.

Classe: wxStdDialogButtonSizer().

Cette classe agence la disposition des boutons des boîtes de dialogue de façon à être conforme aux directives de l'interface de l'utilisateur ou de sa boîte à outils si elle existe.

Mais attention, seuls les boutons faisant partis de la liste suivante sont consernés par cette agencement.

  • wxID_OK
  • wxID_YES
  • wxID_SAVE
  • wxID_APPLY
  • wxID_CLOSE
  • wxID_NO
  • wxID_CANCEL
  • wxID_HELP
  • wxID_CONTEXT_HELP
Mode d'emploi.
  1. Créer une boîte de dialogue.
  2. Créer un wxBoxSizer() principal.
  3. Créer un wxStdDialogButtonSizer.
  4. Créer les boutons. wxButton()
  5. Insérer les boutons avec AddButton() dans wxStdDialogButtonSizer.
  6. Additionner le StdDialogButtonSizer au Sizer principale.
  7. Ne pas oublier wxStdDialogButtonSizer:Realize().
Le constructeur.
	stdDialogButtonSizer = wx.wxStdDialogButtonSizer()
	bouton = wx.wxButton(dialog, wx.wxID_OK, "OK")
	stdDialogButtonSizer:AddButton(bouton)
					
Les méthodes.

Vous trouverez ci-dessous, la liste des méthodes implémentées par wxLua 2.8.10.

AddButton()Additionne un bouton au stdDialogButtonSizer.
SetAffirmativeButton()Définit le bouton actif pour le sizer.
SetNegativeButton()Définit le bouton non-actif pour le sizer.
SetCancelButton()Définit le bouton d'annulation pour le sizer.
Realize()Arrange les boutons et applique un espacement approprié entre les boutons.
Un petit exemple.
	require("wx") -- inutile si on utilise wxluafreeze.exe

	local dialog = nil
	local panel  = nil

	-- Création d'une boîte de dialogue et de son panel.
	dialog = wx.wxDialog(wx.NULL, wx.wxID_ANY, "Boîte de dialogue",
						 wx.wxDefaultPosition, wx.wxDefaultSize)
	panel = wx.wxPanel(dialog, wx.wxID_ANY)

	-- Centre l'objet dialog au centre de l'écran.
	dialog:Centre()	

	-- Création d'un Sizer principal.
	local mainSizer = wx.wxBoxSizer(wx.wxVERTICAL)

	-- Création du texte quelconque. (wxStaticText())
	local Texte = "L'histoire d'Internet remonte au développement 
	des premiers réseaux de télécommunication. L'dée d'un réseau 
	informatique, permettant aux utilisateurs de différents 
	ordinateurs de communiquer, se développa par de nombreuses 
	étapes successives. La somme de tous ces développements 
	conduisit au « réseau des réseaux » (network of networks) que
	nous connaissons aujourd’hui en tant qu'Internet. Il est le 
	fruit à la fois de développements technologiques et du 
	regroupement d'infrastructures réseau existantes et de 
	systèmes de télécommunications."

	local staticTexte = wx.wxStaticText(panel, -1, Texte)
	-- Le texte ne se met pas dans une staticBox, la StaticBox 
	-- ENTOURE simplement le texte.
	-- Mettre le texte sur le panel et l'entourer avec la StaticBox.

	staticTexte:Wrap(450)
	-- Cette méthode encapsule le texte en lui définissant une 
	-- largeur max en pixels.

	-- Addition de staticTexte au staticBoxSizer puis au mainSizer.
	staticBoxSizer	:Add(staticTexte, 0, wx.wxALL, 10)
	mainSizer		:Add(staticBoxSizer, 0, wx.wxALL, 20)

	-- Création du StdDialogButtonSizer.
	local StdDialogButtonSizer = wx.wxStdDialogButtonSizer()

	-- On Créer 3 boutons que l'on va rajouter.
	local btnHELP 	= wx.wxButton(panel, wx.wxID_HELP, "HELP")
	local btnCANCEL = wx.wxButton(panel, wx.wxID_CANCEL, "CANCEL")
	local btnOK 	= wx.wxButton(panel, wx.wxID_OK, "OK")

	-- On additionne les 3 boutons au StdDialogButtonSizer
	StdDialogButtonSizer:AddButton(btnHELP)
	StdDialogButtonSizer:AddButton(btnCANCEL)
	StdDialogButtonSizer:AddButton(btnOK)

	-- On positionne les 3 boutons
	StdDialogButtonSizer:Realize()

	-- On additionne le StdDialogButtonSizer au Sizer principale.
	mainSizer:Add(StdDialogButtonSizer, 0, wx.wxALIGN_CENTRE 
				  + wx.wxALL, 10)

	-- On affecte le Sizer principal au Panel
	panel	 :SetSizer( mainSizer )
	mainSizer:SetSizeHints( dialog )

	-- Gestion des boutons.
	btnHELP:Connect(wx.wxID_HELP, wx.wxEVT_COMMAND_BUTTON_CLICKED,
		function(event) 
		  wx.wxMessageBox("Vous avez appuyé sur HELP") 
		end)

	btnCANCEL:Connect(wx.wxID_CANCEL,wx.wxEVT_COMMAND_BUTTON_CLICKED,
		function(event) 
		  wx.wxMessageBox("Vous avez appuyé sur CANCEL")
		end)

	btnOK:Connect(wx.wxID_OK, wx.wxEVT_COMMAND_BUTTON_CLICKED,
		function(event) 
		  wx.wxMessageBox("Vous avez appuyé sur OK")
		end)

	-- Démarrage de l'application.
	dialog:Show(true)
	wx.wxGetApp():MainLoop()

					

Ce qui nous donne comme résultat:

image01

image02

logo wxWidgets Le savoir ne vaut que s'il est partagé par tous...
logo-internet_32x32.png Dernière mise à jour, le 29 octobre 2012.
Valid XHTML 1.0 Transitional

wxStdDialogButtonSizer
Revenir en Haut
Connexion à la base de données impossible