wxWidgets-Tutorial 008 – Das erste Programm: Netto-Brutto-Rechner

Um uns zu motivieren, schreiben wir in diesem Video unser erstes eigenes kleines Programm. Ihr könnt mal schauen, ob wxWidgets das Richtige für euch ist und schon, nach dem ersten Erfolgserlebnis, damit ein wenig herumspielen.

Das erste Programm: Netto-Brutto-Rechner
Das erste Programm: Netto-Brutto-Rechner

Und so sieht das Programm aus:

Beispielprogramm
Beispielprogramm

Hier noch der Quelltext:

#include <wx/wx.h>

class BruttoNettoApp : public wxApp {

	public:
		bool OnInit();

};

class BruttoNettoFrame : public wxFrame {

	public:
		BruttoNettoFrame();
	
	private:
		wxPanel *mainPanel;
		wxBoxSizer *mainBoxSizer;
		wxTextCtrl *priceTextCtrl;
		wxStaticText *multiplicatorStaticText;
		wxComboBox *taxComboBox;
		wxButton *calculateButton;
		wxTextCtrl *resultTextCtrl;

};

IMPLEMENT_APP(BruttoNettoApp)

bool BruttoNettoApp::OnInit() {
	BruttoNettoFrame *bruttoNettoFrame = new BruttoNettoFrame;
	bruttoNettoFrame->Show();
	
	SetTopWindow(bruttoNettoFrame);

	return true;
}

BruttoNettoFrame::BruttoNettoFrame() : wxFrame(nullptr, wxID_ANY, "Brutto-Netto-Rechner") {
	mainPanel = new wxPanel(this, wxID_ANY);
	mainBoxSizer = new wxBoxSizer(wxHORIZONTAL);

	priceTextCtrl = new wxTextCtrl(mainPanel, wxID_ANY);
	mainBoxSizer->Add(priceTextCtrl, 1);

	multiplicatorStaticText = new wxStaticText(mainPanel, wxID_ANY, "x");
	mainBoxSizer->Add(multiplicatorStaticText);

	taxComboBox = new wxComboBox(mainPanel, wxID_ANY, "", wxDefaultPosition, wxDefaultSize, 0, NULL, wxCB_READONLY);
	taxComboBox->Append("7%");
	taxComboBox->Append("19%");
	taxComboBox->SetSelection(0);
	mainBoxSizer->Add(taxComboBox);

	calculateButton = new wxButton(mainPanel, wxID_ANY, "=");
	calculateButton->Bind(wxEVT_BUTTON, [this](wxCommandEvent &event) {
		double price = 0.f;
		if(priceTextCtrl->GetValue().ToDouble(&price)) {
			price *= taxComboBox->GetSelection() == 0 ? 1.07 : 1.19;
			resultTextCtrl->SetValue(wxString::Format(_("%lf"), price));
		} else {
			wxMessageBox("Wrong price", "Error");
		}
	});
	mainBoxSizer->Add(calculateButton);
	
	resultTextCtrl = new wxTextCtrl(mainPanel, wxID_ANY, "", wxDefaultPosition, wxDefaultSize, wxTE_READONLY);
	mainBoxSizer->Add(resultTextCtrl, 1);

	mainPanel->SetSizer(mainBoxSizer);
	mainBoxSizer->SetSizeHints(this);

	SetSize(500, -1);

	priceTextCtrl->SetFocus();
	calculateButton->SetDefault();
}

Wer Windows und VisualStudio benutzt, kann auf den Play-Button klicken. Unter anderen Systemen könnte die Kompilierung so aussehen:

c++ NettoBruttoRechner.cpp -o NettoBruttoRechner -std=c++11 `wx-config --libs --cppflags`

Auf die einzelnen Komponenten gehe ich dann Stück für Stück in den nächsten Videos ein. Also keine Angst, falls Ihr hier etwas nicht verstehen solltet, das kommt bald.

Hier geht es zum Video.

Schreibe einen Kommentar