radio button in QT-creator (Anfaengerfrage)

Alles rund um die Programmierung mit Qt
Antworten
pipesmoker
Beiträge: 9
Registriert: 28. Mai 2010 10:00
Wohnort: Ilmenau
Kontaktdaten:

radio button in QT-creator (Anfaengerfrage)

Beitrag von pipesmoker »

Hallo,
ich bin neu in der Qt-Welt.
Ich habe mal ein Bisschen mit dem Qt-creator herumgespielt und moechte eigentlich nur ein kleines Uebungsprogramm erstellen, welches zwei RadioButtons auswertet.
Ich habe zwei RadioButtons und einen Pushbutton. Nun moechte ich, dass ein Fenster erscheint, sobald man auf den Pushbutton drueckt. In dem Fenster soll stehen, welchen Radiobutton man ausgewaehlt hat.

Wie geht das? Ich versuche schon seit einigen Tagen, das irgendwie in Gang zu bekommen.
Wie ordne ich einem RadioButton eine Variable zu?
Mein Code sieht so aus, aber es kommt immer die Meldung ' 'a' was not declared in this scope' und 'box1 was not declaired in this scope'.

Code: Alles auswählen

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QRadioButton>
#include <QPushButton>
#include <QMessageBox>


MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::changeEvent(QEvent *e)
{
    QMainWindow::changeEvent(e);
    switch (e->type()) {
    case QEvent::LanguageChange:
        ui->retranslateUi(this);
        break;
    default:
        break;
    }
}

void MainWindow::on_radioButton_clicked()
{
    bool a;
    a=true;
}

void MainWindow::on_radioButton_2_clicked()
{
    bool b;
  b=true;
}

void MainWindow::on_pushButton_clicked()
{
if (a==true)
    QMessageBox box1; box1.setText("Auswahl1"); box1.exec();
}

Was mache ich falsch?

Vielen Dank im Voraus,
Pipesmoker
solarix
Beiträge: 1133
Registriert: 7. Juni 2007 19:25

Beitrag von solarix »

Gleich mit Qt zu beginnen wenn man noch keine Ahnung von C++ hat ist immer etwas knifflig.. Wenn ich mir den Code so anschaue empfehle ich zuerst dringend, mit einem C++-Buch zu arbeiten und zuerst Klassen kennen zu lernen. Danach würde ich die Tutorials (beginnend ab hier: http://doc.trolltech.com/4.6/widgets-tutorial.html) durcharbeiten.

Zu deinem Problem:

Code: Alles auswählen

void MainWindow::on_radioButton_clicked()
{
    bool a;
    a=true;
} 
* Variabel "a" ist eine lokale Variabel und nur innerhalb der Methode sichtbar (Lösung: private Membervariabel der Klasse)
* den Zustand der Checkbox kriegst du über die Checkbox-Instanz in "ui". Siehe Tutorial.

Code: Alles auswählen

void MainWindow::on_pushButton_clicked()
{
if (a==true)
    QMessageBox box1; box1.setText("Auswahl1"); box1.exec();
}
* a war (wie geschrieben) eine lokale Variabel
* das if-Konstrukt ist kompletter Blödsinn weil es aus Sicht des Compilers so aussieht:

Code: Alles auswählen

if (a==true)
    QMessageBox box1; 
box1.setText("Auswahl1"); 
box1.exec();
Die Lösung dazu findest du im C-Buch deiner Wahl.
hth!
pipesmoker
Beiträge: 9
Registriert: 28. Mai 2010 10:00
Wohnort: Ilmenau
Kontaktdaten:

Beitrag von pipesmoker »

Hallo solarix,
danke fuer deine Antwort. Ich bin im 2. Semester und wir programmieren dieses Semester nur in Assembler, naechstes Semester kommt eben Qt mit Qt-Creator. Deswegen wollte ich mich schonmal damit befassen. Du hast Recht, ich habe keine C++-Kenntnisse. Ich habe nur kleine Testprogramme in C++ geschrieben (fuer die Kommandozeile), aber da habe ich mich nicht mit Klassen und so befassen muessen.
Ich habe mal eben in meinen 'Programmen' nachgeschaut - die Variable habe ich immer unter main deklariert. Wo ist denn hier die Mainfunktion?

Danke nochmal fuer deine Geduld,
pipesmoker
solarix
Beiträge: 1133
Registriert: 7. Juni 2007 19:25

Beitrag von solarix »

pipesmoker hat geschrieben:Wo ist denn hier die Mainfunktion?
Ja genau :wink: ... Wir meinen es wirklich nicht boese wenn wir auf Buecher verweisen, aber in einem Qt-Forum kann man nicht mit "wo-kommt-die-main-Methode-hin" beginnen.

Also: besorg dir ein gutes Buch (oder suche gute Online-Tutorials) und arbeite dich hinein. Ich wuerde empfehlen du fragst beim Dozenten nach, was fuer ein Grundlagenbuch ihr einsetzen werdet...

Bei Fragen zu C/C++-Grundlagen hilft dir dann sicher entweder der Dozent oder auch wir im Unterforum "C++ Grundlagen"

hth!
pipesmoker
Beiträge: 9
Registriert: 28. Mai 2010 10:00
Wohnort: Ilmenau
Kontaktdaten:

Beitrag von pipesmoker »

Wir meinen es wirklich nicht boese wenn wir auf Buecher verweisen, aber in einem Qt-Forum kann man nicht mit "wo-kommt-die-main-Methode-hin" beginnen.
Kann ich verstehen :-). Ich wollte auch nicht, dass ihr mir alles erklaert, aber du weisst ja - aller Anfang ist schwer.
Bei uns wird das Buch "Qt 4.6" Von Juergen Wolf empfohlen, aber das kostet knapp 50Eur, wenn ich mich recht entsinne. Das ist echt heftig... kennt ihr billigere Alternativen? Oder hat vllt. noch jemand ein gebrauchtest daheim rumliegen?

Oder habt ihr Links zu guten Tutorials? Ich habe bisher nur welche gefunden, die sich schon auf fortgeschrittene User bezogen haben.

Gruss,
pipesmoker
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

pipesmoker hat geschrieben:Bei uns wird das Buch "Qt 4.6" Von Juergen Wolf empfohlen, aber das kostet knapp 50Eur, wenn ich mich recht entsinne. Das ist echt heftig... kennt ihr billigere Alternativen? Oder hat vllt. noch jemand ein gebrauchtest daheim rumliegen?
DAS wird empfohlen? Das Buch ist fast nur ne deutsche Übersetzung der Qt-Doku (die gibt es kostenlos ;)). Der Rest sind ellenlange Quelltexte, die so auch auf der CD liegen und im Buch nicht so viel Umfang benötigt hätten.
Jürgen Wolf hat eh einen recht schlechten Ruf als Autor. Oberflächlich, oft sogar fehlerhaft und schlechter Stil (z.B. verwendet er ständig globale Variablen in seinem Buch "C++ von A bis Z", obwohl das ziemlich übel ist).

Zu guter letzt: Wenn du Qt programmieren willst, musst du erst gute C++-Grundlagen besitzen. Und deshalb meinte Solarix auch, dass du dir ein C++-Buch kaufen sollst, nicht ein Qt-Buch ;)
Den C++-Primer z.B. gibt es für 30¤ direkt beim Verlag als eBook. Wenn englisch für dich kein großes Problem ist kannst du dir auch "Thinking in C++" vornehmen (Teil 1 + Teil 2), das ist kostenlos zu haben und löst eher positive Resonanzen aus.
pipesmoker
Beiträge: 9
Registriert: 28. Mai 2010 10:00
Wohnort: Ilmenau
Kontaktdaten:

Beitrag von pipesmoker »

DAS wird empfohlen?
Ja, das wird empfohlen. Also der Dozent schreibt "Sie werden keine zusätzliche Literatur benötigen, da eine ausführliche Dokumentation vorliegt [...] sollte Ihnen diese Stütze jedoch nicht genügen, so empfehle ich Jürgen Wolfs "Qt4.6", ISBN[...]"

Englisch ist kein Problem, danke fuer den Hinweis :-).
supergrau
Beiträge: 3
Registriert: 23. Juni 2010 07:57
Kontaktdaten:

preiswertes Qt-Buch

Beitrag von supergrau »

Vielleicht hilft es ja noch.
Ich habe mir mal Das Buch von Daniel Molketin "Qt 4 - Einführung in die Anwendungsentwicklung" gekauft. Ursprünglich hat es 45,- ¤ gekostet. Bei www.terrashop.de habe ich es für 19.90 ¤ bekommen.
Das Buch ist jetzt wohl auch in einer neuen Auflage erhältlich. Allerdings gemeinsam mit der Online-Doku (die, wie ich finde seines gleichen sucht ;))
sollte man gut zurecht kommen.
und zu C++ findet man jede Menge guter Tutorials im Netz. Such doch mal bei google nach Schmaranz und C++!

VG
Micha
Alles Gute ist nie beieinander
guenni81
Beiträge: 134
Registriert: 29. Juli 2006 02:22

Beitrag von guenni81 »

Hallo,
also das dieses Buch bei euch empfohlen wird kann ich auch nicht verstehen, der hit ist dies wirklich nicht.
Qt kannst du im Prinzip wirklich anhand der Qt Dokumentation (die sehr gut ist) und den Beispielen lernen. Wichtig ist aber das du hier schon die C++ Grundlagen beherrschst.
mfg
Günni
Oliver Hom
Beiträge: 33
Registriert: 27. Mai 2009 12:44

Bücher

Beitrag von Oliver Hom »

Das Wolf Buch habe ich auch gelesen und war nicht so angetan davon. Viele interessante Aspekte der Qt-Entwicklung wurden darin nicht behandelt.
Besser finde ich da das Buch:

C++ GUI Programmierung mit Qt4
2008
Jasmin Blanchette
Mark Summerfield
Addision-Wesley

Das gibt es auch als teilweise Vorschau bei Google Books zum reinschauen ;)
http://books.google.com/books?id=T373zc ... navlinks_s

Für C++ kann ich das Buch:
Die Kunst der Programmierung mit C++ von Martin Aupperle empfehlen.
Sehr insteressant und gut beschrieben. Das gab es mal bei Terrashop für 10 Euro. :)
http://www.primaprogramm.de/index.html

Gruß,
Oliver Hom
pipesmoker
Beiträge: 9
Registriert: 28. Mai 2010 10:00
Wohnort: Ilmenau
Kontaktdaten:

Beitrag von pipesmoker »

Danke fuer eure Antworten!
C++ GUI Programmierung mit Qt4
2008
Jasmin Blanchette
Mark Summerfield
Addision-Wesley
Das Buch habe ich mir jetzt auch zugelegt, allerdings die englische Variante. Ich komme langsam mit Qt zurecht, aber ich sehe noch nicht durch das ganze Klassenzeugs durch. Aber das wird schon :-)

Fuer C++ habe ich mir das Buch "C++ in 21 Tagen" ausgeliehen (sind allerdings knapp 1000 Seiten, da wird nichts mit 21 Tagen^^). Was haltet ihr davon? Zumindest finde ich den Anfang nicht schlecht (ich habe es erst einige Tage, bin noch nicht weit gekommen)
Kaufen wuerde ich es mir trotzdem nicht....

Dennoch habe ich immer mal wieder kleine Verstaendnisprobleme. Manchmal ist in den Buechern ein Stueck Code gegeben, aber ich weiss nicht, in welche Datei und an welche Stelle das muss. Aber das wird bestimmt auch noch :-)

Danke nochmal,
Pipesmoker
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Auch von C++ in 21 Tagen hab ich schon schlechtes gehört...
Die einzigen Bücher, die man bedenkenlos empfehlen kann (hab nicht alle), sind
*) C++ Primer (gibts auf Deutsch momentan nur als eBook)
*) Stroustrup "Die C++ Programmiersprache" (DER fast allumfassende Klassiker)
*) Breymann "Der C++ Programmierer"
*) der neue vom Stroustrup "Einführung in die Programmierung mit C++" soll auch sehr gut sein und im Gegensatz zum oben genannten auch für Anfänger durchweg empfehlenswert.

Soll es mehr sein, kannst du dich an Alexandrescu, Scott Meyers oder Herb Sutter wagen - aber nur, wenn die Grundlagen sitzen, sonst wird es nur noch frustrierend ;)
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Beitrag von RHBaum »

@pipesmoker

An Deiner Stelle würd ich mir zuerst klarmachen, wie "ernst" DU es mit dem thema meinst ....

Die besten C++ Buecher werden später fast wertlos (sie haben immer noch nen Brennwert !) wenn DU spaeter ganz gross in die Scriptsprachen einsteigst, Dich als Grafiker versuchst, oder Du deine Liebe zu Pferden entdeckst und Farmer mit eigenen Ponyhof wirst ! (ich hoffe Du verstehst was ich mein :twisted: )

Deswegen:
Hasst Du zugriff auf eine Bibliothek mit Fachbuechern ? wenn ja, wuerd ich mich da zuerst mal umschauen und die lage sondieren.
Fuer C++ habe ich mir das Buch "C++ in 21 Tagen" ausgeliehen
Das Buch selber find ich ... zensiert .... Aber die Quelle hat sicher noch andere Werke ? hoffentlich ? ^^

Weiterhin solltest du Buecher in 2 kategorien unterteilen.
"Fachprosa" und Nachschlagewerke.

Die meisten Buecher sind irgendwo dazwischen, aber es stellen sich fast immer tendenzen raus.

Fachbuecher sind nützlich, wenn Du Dich in der Lernphase befindest. Oder wenn du langeweile hasst, und was in der Richtung tun willst. Die liest man wenn man ned grad am entwickeln iss, also der computer kann da aus und meilenweit weg sein ...
Solche buecher kann man sich bevorzugt ausleihen.
Fuer deinen Context gute Buecher waeren:
Ich habe mir mal Das Buch von Daniel Molketin "Qt 4 - Einführung in die Anwendungsentwicklung" gekauft.

Kann ich auch nur weiterempfehlen ... eines der besseren Fachbuecher zu QT.

Für c++ find ich André Willms ganz gut als Fachbuch.

Im Fortgeschrittenen Stadium definitv auch Bjarne Stroustrup selber (aber das sollt ned das erste Buch sein) ...

Definiv eine Abneigung hab ich gegen Buecher, wo eine Lib mit c++ Grundlagen vermengt wird.
MFC und c++ Lernen etc. Sowas beisst sich meist.
Auch wenn das "visual" im titel auftaucht, eher nicht so toll.
Entweder c++ Grundlagen / Techniken oder nen Buch über ne Bib.

Reine Nachschlagewerke ersetzen die Onlinehilfen, sind also nur "begrenzt" nützlich.
Wenn Du englisch kannst, wird die Online QT hilfe völlig ausreichend sein.

Ne Ausnahme ist IMHO
"Die C++ Standardbibliothek"
Das Buch ist IMHO sowohl gut als Fachbuch, es erklaert ne Menge zu den Konzepten der STL , Praedikate usw
und eignet sich gleichzeit auch als Nachschlagewerk fuer die wichtigsten Container und Algorythmen. Grad bei den Algos muss ich noch oft nachschlagen, welchen ich wo verwenden koennt und was es ueberhaupt gibt.
Ungemein nützlich, Das oder was ähnliches sollte jeder C++ Programmierer haben.

Nachschlagewerke gibt man auch aeuserst ungern wieder aus der Hand, weil man die immer braucht !!! Die sollt man sich also niemals "leihen" :twisted:

Ciao ...
Antworten