Mit einem Kontrollkästchen in pyqt
1) ich habe ein Kontrollkästchen mit der Bezeichnung "ch_check" in meine Benutzeroberfläche erstellt, die mit Qt designer, das getestet werden muss
2) gibt Es auch einen button, "bt_button", die Trigger eine einfache Funktion:
self.dlg.bt_button.clicked.connect(self.doCheck)
3) Die Funktion:
def doCheck(self):
if ch_check.isChecked():
self.dlg.le_text.setText("Hello")
else:
self.dlg.le_text.setText("Nope")
Aber ich kann nicht herausfinden, wie auf der box richtig. Wie soll ich das tun? Brauche ich zum Anschluss der checkbox irgendwie zuerst? Alle Beispiele die ich bisher gefunden Kontrollkästchen verwenden, um Feuer aus-Funktionen und so weiter, während Sie völlig ignorierte dies ist die grundlegende Anwendung. Ich fand diese Frage aber nicht beantworten, wie die vorhandene checkbox: Wie um zu überprüfen, ob eine checkbox aktiviert ist in pyqt
InformationsquelleAutor MapEngine | 2015-05-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie dies unter Verwendung der StateChanged signal. Für dieses Beispiel haben wir eine einfache
.ui
und eine einfache.py
Datei:Den
.ui
- Datei definiert zwei widgets. Ein Kontrollkästchen (ch_check
) und eine einzige QLabel (my_label
)Die python-Datei:
Erklärung:
Setzen wir unser signal mit der Zeile:
Wenn der Zustand der checkbox ändert, wird er rufen Sie die
state_changed
Funktion. Dies ist, wo Sie Ihre Logik um zu überprüfen, ob das Kontrollkästchen aktiviert oder deaktiviert ist geht.In der Funktion wir bestimmen, ob das Kontrollkästchen aktiviert wurde. Wenn dem so ist, ändern wir unser label zu sagen "ÜBERPRÜFT", wenn es deaktiviert ist die Beschriftung ändert sich in "DEAKTIVIERT".
Beispiel:
Wenn die Anwendung gestartet wird, die UI sieht wie folgt aus:
Kästchen ankreuzen, ändert sich die Beschriftung:
Deaktivieren der box, ändert sich auch die Bezeichnung:
Was ist falsch mit der Verwendung der if-Anweisung in der Funktion? Ich bin nicht verstehen Sie Ihre editierte Frage.
Ihre Antwort ist in Ordnung, aber nicht das, was ich suchte. Mein problem war viel einfacher. Ich denke, ich habe es übermäßig kompliziert, ich brauchte nur zu fügen Sie selbst.dlg. meine, wenn.. d ' Oh!
InformationsquelleAutor Andy
Wie bereits im Kommentar oben, ich habe nur einen kleinen Fehler gemacht. Der richtige code wäre:
InformationsquelleAutor MapEngine