Classe: wxProgressDialog().
Cette classe représente une boîte de dialogue qui affiche un court message et une barre de progression.
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_MODAL | Rend la boîte de dialogue " modale". |
| wx.wxPD_AUTO_HIDE | La 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_SMOOTH | Applique une progression "lisse" de la jauge.(utiliser wx.wxGauge avec le style wx.wxGA_SMOOTH) |
| wx.wxPD_CAN_ABORT | La boîte de dialogue a un bouton "Annuler". Si ce bouton est utilisé, le prochain appel à Update() retournera false. |
| wx.wxPD_CAN_SKIP | La 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_TIME | Afficher le temps écoulé. (depuis la création de la boîte de dialogue). |
| wx.wxPD_ESTIMATED_TIME | Affiche le temps estimé. |
| wx.wxPD_REMAINING_TIME | Affiche le temps restant. |
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.
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.

