Taschenrechner programmieren mit Qt Creator
-
Hi,
wie ich bereits in meiner ersten Anfrage erwähnt habe, versuche ich gerade einen einfachen Taschenrechner mit dem Qt Creator zu programmieren. Da ich aber noch so gut wie keine Erfahrung mit Qt habe, wollte ich mich in diesem Thema mit anderen Programmierern austauschen und hatte gehofft, fragen hier schnell und kompackt zum genannten Projekt loszuwerden. Für alle anderen soll dies jedoch auch eine Möglichkeit sein die Proogrammierung nachzuverfolgen. Wenn mir das Projekt gelingt werde ich den gesamtcode hier auf die Webside stellen und somit anderen die Möglichkeit geben etwas ähnliches zu schaffen.
Wie ich bereits erwähnt habe, habe ich bis jetzt nur in Visual Studio c++ 2010 express gearbeitet und noch keinerlei Erfahrung mit dem qt creator. Ich bin hobbyprogrammierer und 15 Jahre alt. das nur mal so am Rande, damit ihr mir womöglich stumpfsinniges Coding vielleicht nachseht
. Ich wollte eigentlich immer reaktionsspiele programmieren, habe bisher jedoch damit nicht alzuviel erfolg, nichtzuletzt weil ich immer nur im Konsolenfenster gearbeitet habe.
Ich fände es aber toll hier einige Programmierer zu treffen, denen es ähnlich wie mir geht, und mit denen ich womöglich an Projekten zusammenarbeiten kann. Wenn ich das richtig verstanden habe, dann kann jeder der sich auf dieser Webside angemeldet hat mir auch eine E-Mail schreiben. ansonsten könnte wir uns auch über das Forum austauschen. Ist da in der Welt der C++-Programmierung noch irgentwer in meinem Alter (nur mal sone Frage)
So jetzt aber zu meinem Projekt:
Bisher habe ich im Editor ein einfaches Muster erschaffen, wie ein Taschenrechner etwa aussehen könnte. Dies besteht aus einem Label für das Ergebnis und 14 Buttons: 9 für die Zahlen und die restlichen für die Rechenoperationen x - + und x sowie ein = um das ganze zu bestätigen.
Das dürfte es schon sein, was man zur gestalltung braucht. Dann habe ich versucht mit der Programmierung zu beginnen und bin gleich auf mein erstes Problem gestoßen:
Wie ich schon netterweise von einem Programmierer hier erfahren habe kann man mit
#include "mainwindow.h" #include "ui_mainwindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); } MainWindow::~MainWindow() { delete ui; } void MainWindow::on_buttoneins_clicked() { ui->label1->setText("1") ; }
dafür sorgen, das beim Druck eines Buttons (der mit der 1) sich der Text zu 1 verändert. Für wen das unübersichtlich erscheint nochmal die eigentliche Programmierung:
void MainWindow::on_buttoneins_clicked() { ui->label1->setText("1") ; }[code="cpp"] Das ist ja erstmal kein Problem. Allerdings habe ich versucht die Variable "Ergebnis" zu erstellen, und diese auszugeben: [code="cpp"] #include "mainwindow.h" #include "ui_mainwindow.h" int ergebnis = 0; MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); } MainWindow::~MainWindow() { delete ui; } void MainWindow::on_buttoneins_clicked() { ++ergebnis; ui->label1->setText(ergebnis) ; }
Dies führt allerdings zu einer Fehlermeldung. Daher wäre meine erste Frage ob einer von euch erfahrerenen Programmierern mir sagen kann, wie ich das beheben kann.
Es wäre echt nett wenn jemand noch heute antworten könnte, damit ich so schnell wie möglich weiterarbeiten kann! Ich halte euch natürlich auf dem Laufenden. Wie gesagt, ich fände Teamwork auch praktisch. Allerdings möchte ich trotzdem noch selber nachdenken und mir nicht von einem von euch den fertigen Code geben lassen. Das würde mir nicht helfen. Ich besuche im Februar nächsten Jahres ein Praktikum bezüglich php Programmierung und möchte bis dahin wenigstens in c++ einige Fortschritte machen. Also würde ich mich über eine schnelle Antwort freuen!!!!
Danke
Taschenrechnerprogrammierer
(Ich hatte keine Lust mehr mit Anfänger zu unterschreiben und hier scheint keiner mit seinem Namen zu unterschreiben, oder?)
-
1. Du schreibst zu viel Text, das ist lästig. Wie du dir sicher vorstellen kannst, interessiert sowas die erfahrenen Entwickler schon lang nicht mehr. Es ist viel angenehmer, 1-2 Sätze mit einer prägnanten Problembeschreibung zu lesen als eine halbe Seite. Dabei hast du das Problem nicht mal beschrieben. Ich verweise dich gleich mal auf die Seite, wie man Fragen richtig stellt:
http://www.catb.org/~esr/faqs/smart-questions.html2. Was ist jetzt eigentlich dein Problem? Ja, ich seh schon paar Probleme, aber du hast sie nicht beschrieben. Eine "Fehlermeldung" kann absolut alles mögliche bedeuten, z.B. Compilerfehler oder Laufzeitfehler. Du musst schon ganz genau sagen, was für ein Fehler das ist und in welcher Zeile er auftritt.
3. Bevor du mit GUI Programmierung anfängst, solltest du evtl. richtig C++ lernen. Dir fehlen die Grundlagen. GUI Programmierung lenkt davon ab. Ich weiß nicht, obs wirklich nötig ist, sowas getrennt zu lernen. Ich habe damals auch gleich mit GUI angefangen (Delphi) und mein erstes Projekt war auch ein Taschenrechner. Ich habe aber nicht gut programmieren gelernt, hab jahrelang Spaghetticode geschrieben und musste dann umdenken.
4. C++ hat mit PHP wenig zu tun. Es gibt zwar gewisse gemeinsame Grundlagen und wenn man eine Sprache kann, kann man andere schneller lernen. Aber so lange man noch ein Anfänger ist, sollte man sich eher nicht durch verschiedene Konzepte irritieren lassen.
Zu deinen konkreten Problemen. Deine Variable ergebnis solltest du als Member deiner Klasse deklarieren und nicht global (und am besten Darstellung von der Logik trennen, also nicht unbedingt in der Window Klasse). Du zählst die Variable hoch, das hat aber nichts mit dem zu tun, was der Benutzer eingegeben hat. Und bei der Ausgabe will das QLabel einen QString haben, du gibst aber einen int rein.
-
ok
-
werd dann mal erstmal im buch weiterarbeiten!