Autore: Fabio Di Matteo
Ultima revisione: 05/12/2023 - 16:27
Ho creato il file della gui con wxFormbuilder (gui.xrc) poi tramite il binario wxrc l'ho convertito in un sorgente c++ (gui.cpp). Poi ho incluso gui.cpp e caricato l'apposita funzione che rende disponibili i widgets all'interno della nostra applicazione (InitXmlResource() contenuta in gui.cpp).
#include "wx/wx.h" #include "wx/xrc/xmlres.h" #include "gui.cpp" class MainFrame{ public: wxFrame frame0; wxStaticText *label0; wxTextCtrl *text0; wxButton *button0; void ShowFrame(); void OnClickme(wxCommandEvent& event); } ; //L'implementazione della nostra classe responsabile del caricamento della nostra gui void MainFrame::ShowFrame() { //Ricavo il riferimento alla mia finestra principale wxXmlResource::Get()->LoadFrame(&frame0, NULL, wxT("frame0")); label0 = XRCCTRL(frame0, "label0", wxStaticText); text0 = XRCCTRL(frame0, "text0", wxTextCtrl); button0 = XRCCTRL(frame0, "button0", wxButton); button0->Bind(wxEVT_BUTTON, &MainFrame::OnClickme, this); frame0.Show(); } void MainFrame::OnClickme(wxCommandEvent& event) { label0->SetLabel(text0->GetValue()); puts(text0->GetValue()); } class MyApp: public wxApp { //questo metodo è presente in ogni oggetto wxApp // serve a lanciare la prima finestra e ad altre inizializzazioni. virtual bool OnInit(); }; bool MyApp::OnInit() { wxXmlResource::Get()->InitAllHandlers(); //inizializziamo InitXmlResource(); //in gui.cpp ottenuto con "wxrc gui.xrc -v -c -o gui.cpp" //wxXmlResource::Get()->Load(wxT("gui.xrc")); //se volessimo caricare la gui dal file xrc MainFrame *MainWin = new MainFrame(); //instanziamo la nostra classe responsabile MainWin->ShowFrame(); //del caricamento della nostra gui return true; } //Macro che implementa la main() principale IMPLEMENT_APP(MyApp)
CPP = g++ OPTS = `wx-config --cxxflags --libs` all: wxrc gui.xrc -v -c -o gui.cpp $(CPP) main.cc -o wxtest $(OPTS)
Il nostro wiki installa solamente cookie tecnici necessari al funzionamento della piattaforma "Dokuwiki". Niente analitics, statistiche, tracciamenti o altro.