(Riferimento alle funzioni membro delle classi.)
Avviare un nuovo progetto wxWidgets. Denominarlo "Scheda".
Nel form aggiungere un wxBoxSizer, in questo inserire un wxPanel. Nel Pannello inserire un wxFlexGridSizer.
Assegnare le proprietà al componente FlexGridSizer: cols=2 - Growable cols=0, 1
Inserire i seguenti componenti nel form:
wxStaticText | wxButton |
wxTextCtrl | wxButton |
wxGauge | wxButton |
wxStaticText | wxSlider |
wxStaticText | wxButton |
Successivamente, dopo aver definito il ruolo dei vari componenti, modificare le proprietà label.
Spuntare la proprietà Expand di tutti i componenti.
Si deve tener presente che per ogni componente aggiunto sul form, vine automaticamente aggiunta la dichiarazione di variabile all'interno della classe.
Ogni componente possiede le proprietà name e IsMember. Il nome del componente serve per far riferimento ad esso all'interno del programma. La proprietà IsMember specifica se la variabile deve essere accessibile come membro della classe.
Doppio clic su Button1 e scrivere il gestore di evento associato al clic sul pulsante:
void schedaFrame::OnButton1Click(wxCommandEvent& event) { StaticText1->SetLabel(_("Didascalia modificata")); Layout(); }
La chiamata del metodo Layout() serve per ricalcolare le nuove dimensioni della label dopo aver cambiato la lunghezza del testo.
Un componente wxStaticText possiede due funzioni: GetLabel() e SetValue().
Doppio clic su Button2 e completare il gestore di evento associato al pulsante:
void schedaFrame::OnButton2Click(wxCommandEvent& event) { wxString Testo = TextCtrl1->GetValue(); wxMessageBox (_("Nella casella di testo hai scritto: ") + Testo); }
L'esempio che segue comanda l'avanzamento della progress bar con il clic del pulsante. Doppio clic su Button3.
void schedaFrame::OnButton3Click(wxCommandEvent& event) { int valore = Gauge1->GetValue() + 10; if (valore>100) valore=0; Gauge1->SetValue(valore); }
In questo esempio si usa lo Slider per modificare l'altezza del font della label di sinistra.
Durante lo scorrimento dello slider il testo cambia altezza. Alla fine si determinano le nuove dimensioni chiamando la funzione Layout().
Tramite la finestra delle Proprietà/Eventi aggiungere un gestore di evento allo slider: EVT_COMMAND_SCROLL_THUMBTRACK. Scegliere Add New Handler.
void schedaFrame::OnSlider1CmdScrollThumbTrack(wxScrollEvent& event) { wxFont Font = StaticText2->GetFont(); Font.SetPointSize(Slider1->GetValue()); StaticText2->SetFont(Font); }
Nella stessa finestra degli eventi scrivere il gestore associato all'evento EVT_COMMAND_SCROLL_THUMBRELEASE:
void schedaFrame::OnSlider1CmdScrollThumbRelease(wxScrollEvent& event) { Layout(); GetSizer()->SetSizeHints(this); }
Doppio clic su Button4 e scrivere il gestore di evento:
void schedaFrame::OnButton4Click(wxCommandEvent& event) { wxColour oldColore = StaticText3->GetForegroundColour(); wxColour nuovoColore = wxGetColourFromUser(this, oldColore); if (nuovoColore.IsOk()) StaticText3->SetForegroundColour(nuovoColore); StaticText3->SetLabel(_("colorato")); }
Nota: per poter richiamare la funzione wxGetColourFromUser occorre includere il file di intestazione:
#include <wx/colordlg.h>
IsOk() è usato per assicurarsi che l'utente non abbia premuto il pulsante Annulla nel form di scelta del colore.