Hallo Gemeinde.
Ich habe ein kleines Fenster erstellt auf dem 5 "checkable" QtPushButtons zu sehen sind.
Von diesen 5 Buttons darf aber immer nur einer aktiv bzw. gedrückt sein. Klickt man z.B. auf den 3. Button, sollen automatisch Button1, Button2, Button4 und Button 5 auf unchecked gehen...
Wie erreicht man soetwas am elegantesten?
Ich denke ich bräuchte ein allgemeines clicked()-Ereignis, das von allen Knöpfen ausgelöst werden kann. Nur wie bestimme ich dann, welcher der 5 Buttons der Auslöser war?
Ich bräuchte ein paar Tipps dahingehend...
(bin absoluter Qt Neuling)
Vielen Dank.
checkable Buttons gegeneinander "verriegeln"
Im Grunde macht die QCheckBox genau das, was du möchtest:Ich habe ein kleines Fenster erstellt auf dem 5 "checkable" QtPushButtons zu sehen sind.
Von diesen 5 Buttons darf aber immer nur einer aktiv bzw. gedrückt sein. Klickt man z.B. auf den 3. Button, sollen automatisch Button1, Button2, Button4 und Button 5 auf unchecked gehen...
http://doc.qt.nokia.com/4.7/qcheckbox.html#details
Aber falls du es wirklich selbst machen möchtest:
Es gibt mehrere Varianten, aber nur eine elegante: die mit einem QSignalMapper:Ich denke ich bräuchte ein allgemeines clicked()-Ereignis, das von allen Knöpfen ausgelöst werden kann. Nur wie bestimme ich dann, welcher der 5 Buttons der Auslöser war?
http://doc.qt.nokia.com/4.7/qsignalmapper.html#details
hth!
Danke, also das hat jetzt ganz gut geklappt:
1. Im Designer die Buttons anwählen die zu einer Gruppe gehören.
2. Mit Rechtsklick eine QButtonGroup erstellen
(Standardmäßig ist hierbei "exclusive = True" was auch von mir gewünscht ist).
3. Dann einen Button der Gruppe auswählen und diesen auf "checked = True" setzen. Dies ist die Startbedingugn der Gruppe.
Super. Bin begeistert.
Und danke nochmal.
1. Im Designer die Buttons anwählen die zu einer Gruppe gehören.
2. Mit Rechtsklick eine QButtonGroup erstellen
(Standardmäßig ist hierbei "exclusive = True" was auch von mir gewünscht ist).
3. Dann einen Button der Gruppe auswählen und diesen auf "checked = True" setzen. Dies ist die Startbedingugn der Gruppe.
Super. Bin begeistert.
Und danke nochmal.