QRadioButton abfragen
QRadioButton abfragen
hi zusammen,
wie bekommt man den status eines Radio Buttons raus ??
ich frage den button so ab:
while(abfrage->scanpath_1box->state()!=2)
geht das überhaupt so ??
Ich habe den leisen Verdacht, das da nicht mal was ankommt.
schonmal danke im voraus
wie bekommt man den status eines Radio Buttons raus ??
ich frage den button so ab:
while(abfrage->scanpath_1box->state()!=2)
geht das überhaupt so ??
Ich habe den leisen Verdacht, das da nicht mal was ankommt.
schonmal danke im voraus
http://doc.trolltech.com/4.4/qradiobutton.html
http://doc.trolltech.com/4.4/qabstractbutton.html
Man sollte das Forum erweitern, so dass man einen Beitrag nur abschicken kann, wenn man vorher die Checkbox "Ja, ich habe die Doku zu meinem Problem gelesen" angeklickt hat
Btw: Was willst du mit der while-Schleife erreichen?
http://doc.trolltech.com/4.4/qabstractbutton.html
Man sollte das Forum erweitern, so dass man einen Beitrag nur abschicken kann, wenn man vorher die Checkbox "Ja, ich habe die Doku zu meinem Problem gelesen" angeklickt hat
Btw: Was willst du mit der while-Schleife erreichen?
-
chrislo1976
- Beiträge: 105
- Registriert: 24. Februar 2008 09:45
Deine Endlosschleife wird sicherlich nicht funktionieren, wenn du nie in die eventloop zurückkommst, die sich darum kümmert, was gerade mit den GUI-Elementen passieren soll (z.B. clicked(), checked() usw.).
Der Qt-Way ist, dass du das clicked()-SIGNAL (oder welches du verwenden willst) mit nem SLOT verbindest, der sich dann um diese spezielle AUfgabe kümmert (lies dir dadurch ruhig die Doku + Beispiele durch...).
Wenn du WIRKLICH WIRKLICH sicher bist, dass du unbedingt das alles in ner (Endlos)Schleife machen MUSST (weil weder SIGNAL/SLOT noch QThread in Frage kommen) bau doch ein QApplication::processEvents() in die Schleife ein. Wird bei viel Rechenaufwand in deiner Schleife aber eine recht hackelige GUI hinterlassen.
Der Qt-Way ist, dass du das clicked()-SIGNAL (oder welches du verwenden willst) mit nem SLOT verbindest, der sich dann um diese spezielle AUfgabe kümmert (lies dir dadurch ruhig die Doku + Beispiele durch...).
Wenn du WIRKLICH WIRKLICH sicher bist, dass du unbedingt das alles in ner (Endlos)Schleife machen MUSST (weil weder SIGNAL/SLOT noch QThread in Frage kommen) bau doch ein QApplication::processEvents() in die Schleife ein. Wird bei viel Rechenaufwand in deiner Schleife aber eine recht hackelige GUI hinterlassen.
Nicht sehr elegant mit dem break.Klausn hat geschrieben:Die Austrittsanweisung hab ich hier nicht gepostet !
Ausserdem kann ich doch jederzeit mit nem break; rausspringen.
warum nicht:
if (...state() == 2) ....
else if (...state() == 3) ...
else if (...state() == 4) ...
oder gleich einen switch nehmen.
Linux, das längste Text-Adventure aller Zeiten
-
chrislo1976
- Beiträge: 105
- Registriert: 24. Februar 2008 09:45
Und warum reicht dann kein einfaches:
Das führt den gewünschten Code nur dann aus wenn der RadioButton gedrückt ist, anderfalls eben nicht.
Genau wie pfid frage ich mich warum eine Schleife?
Gruß,
Christian
Code: Alles auswählen
if (radioButton.isChecked())
{
...Mach irgendwas
}
Genau wie pfid frage ich mich warum eine Schleife?
Gruß,
Christian
http://doc.trolltech.com/3.3/qradiobutton.htmlKlausn hat geschrieben: im übrigen vergaß ich zu erwähnen das ich nur QT3.3.3 verwende !
@pfid
wie soll ich sonst ohne schleife vier radio buttons abfragen ?
jeder radiobutton soll eine andere funktion ausführen.
das hier funktioniert nicht... die schleife wird auch bei FALSE durchlaufen
if( sup->scanpath_1box->isChecked() == TRUE )
{
anweisung
}
ich denke das die abfrage des radiobuttons so nicht hinhaut.. und die Doku hab ich mittlerweile gelesen ! Trotzdem funktionierts noch nicht !
wie soll ich sonst ohne schleife vier radio buttons abfragen ?
jeder radiobutton soll eine andere funktion ausführen.
das hier funktioniert nicht... die schleife wird auch bei FALSE durchlaufen
if( sup->scanpath_1box->isChecked() == TRUE )
{
anweisung
}
ich denke das die abfrage des radiobuttons so nicht hinhaut.. und die Doku hab ich mittlerweile gelesen ! Trotzdem funktionierts noch nicht !
Wie willst du den Button denn sonst abfragen?Klausn hat geschrieben:@pfid
wie soll ich sonst ohne schleife vier radio buttons abfragen ?
jeder radiobutton soll eine andere funktion ausführen.
das hier funktioniert nicht... die schleife wird auch bei FALSE durchlaufen
if( sup->scanpath_1box->isChecked() == TRUE )
{
anweisung
}
ich denke das die abfrage des radiobuttons so nicht hinhaut.. und die Doku hab ich mittlerweile gelesen ! Trotzdem funktionierts noch nicht !
Soll nicht arrogant klingen, aber wenn "anweisung" ausgeführt wird, würde das entweder bedeuten dass"scanpath_1box" angekreuzt ist, oder QT wundersamerweise bei isChecked() true liefert, obwohl der Radiobutton nicht gewählt ist.bool QRadioButton::isChecked () const
Returns TRUE if the radio button is checked; otherwise returns FALSE. See the "checked" property for details.
Und was hat das ganze mit Schleifen zu tun? Weil deine if-Abfrage scheinbar nicht funktioniert, baust du ne Schleife drumrum damit sie irgendwann mal funktioniert, oder wie versteh ich das?
Ist eigentlich Qt-Grundlage (SIGNAL/SLOT).
Dein QRadioButton erbt von QButton. Dieser wiederum hat SIGNALS, wie clicked() oder stateChanged( int state ). Diese Signale einfach an einen SLOT hängen (connect()), der die jeweilige Aufgabe erledigt. Kannst natürlich auch das Signal eines jeden deiner 4 RadioButtons auf den gleichen SLOT legen, und da dann alle States abfragen, wenn du ganz bestimmte Aktionen nur bei bestimmten Kombinationen deiner States haben willst.
Dein QRadioButton erbt von QButton. Dieser wiederum hat SIGNALS, wie clicked() oder stateChanged( int state ). Diese Signale einfach an einen SLOT hängen (connect()), der die jeweilige Aufgabe erledigt. Kannst natürlich auch das Signal eines jeden deiner 4 RadioButtons auf den gleichen SLOT legen, und da dann alle States abfragen, wenn du ganz bestimmte Aktionen nur bei bestimmten Kombinationen deiner States haben willst.