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

Classe: wxProgressDialog().

Cette classe représente une boîte de dialogue qui affiche un court message et une barre de progression.

Le constructeur: Explication.
progressDialog = wx.wxProgressDialog (	
  const wxString & title,   = "titre de la boîte",
  const wxString & message, = "ceci est un petit message",
  int maximum               = 100,
  wxWindow       * parent,  = wxNULL,
  int  style                = wx.wxPD_AUTO_HIDE + 
                              wx.wxPD_APP_MODAL)
  )

title est le titre de la boîte de dialogue.

message est le message à afficher.

int maximum indice maximum de la jauge.

parent est la fenêtre qui détient la boite de dialogue.

style est le style de la boîte de dialogue.

wx.wxPD_APP_MODALRend la boîte de dialogue " modale".
wx.wxPD_AUTO_HIDELa boîte de dialogue de disparait dès que la valeur maximale est atteinte. Si ce style n'est pas présent, la boîte de dialogue deviendra une boîte de dialogue modale.
wx.wxPD_SMOOTHApplique une progression "lisse" de la jauge.(utiliser wx.wxGauge avec le style wx.wxGA_SMOOTH)
wx.wxPD_CAN_ABORTLa boîte de dialogue a un bouton "Annuler". Si ce bouton est utilisé, le prochain appel à Update() retournera false.
wx.wxPD_CAN_SKIPLa boîte de dialogue aun bouton "Skip". (nettoyage, remise à zéro.) Si ce bouton est utilisé, le prochain appel à Update() retournera true.
wx.wxPD_ELAPSED_TIMEAfficher le temps écoulé. (depuis la création de la boîte de dialogue).
wx.wxPD_ESTIMATED_TIMEAffiche le temps estimé.
wx.wxPD_REMAINING_TIMEAffiche le temps restant.

Les méthodes.

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

Resume()Est utilisé pour poursuivre le dialogue, après que l'utilisateur ait cliqué sur le bouton "Cancel".
Update(indice, "message")Mise à jour de la boîte de dialogue, réglage de la barre de progression pour la nouvelle valeur (indice) et mise à jour du message, si un nouveau est spécifié.
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.

Un exemple concret d'utilisation.
require("wx") -- inutile si on utilise wxluafreeze.exe

-- Création d'une frame et de son panel.
local frame = wx.wxFrame(wx.NULL, wx.wxID_ANY, 
                         "wxProgressDialog")
local panel = wx.wxPanel(frame, -1)

-- Centrage de la frame au milieu de l'écran.
frame:Centre()

-- Création d'un bouton d'appel.
local bouton = wx.wxButton(panel, -1, "progressDialog")

--Fonction équivalent au sleep en C n en secondes
function sleep(n)
  local clock = os.clock
  local t0 = clock()
  while clock() - t0 <= n do end
end

function ProgressDialog(event)
	-- Création de la progressDialog.
	local progressDialog = wx.wxProgressDialog(
	"Titre de la boîte.", 	"Barre de progression...", 
	100, frame, wx.wxPD_APP_MODAL +
	wx.wxPD_ELAPSED_TIME + wx.wxPD_CAN_ABORT)
	for i = 1, 100 do
		sleep(0.25)

		if (progressDialog:Update() == false) then
		local message = wx.wxMessageBox("Voulez-vous vraiment 
		                  tout arrêter?","Titre de la boîte.", 
		                  wx.wxYES_NO + wx.wxICON_QUESTION)
			if message == wx.wxYES then
				break
			else
				progressDialog:Resume()
			end
		end
		progressDialog:Update(i,"Chargement en cours. "..i.." %")
	end
	progressDialog:Destroy()
end

-- appel de la fonction par "clic" sur un bouton.
bouton:Connect(wx.wxEVT_LEFT_DOWN, ProgressDialog)

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

Ce qui 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 14 octobre 2012.
Valid XHTML 1.0 Transitional

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