Wie alle Kind-Komponenten von QWidget in pyside/pyqt/qt?
Ich bin die Entwicklung einer desktop Anwendung mit pyside(qt), möchte ich den Zugriff(Durchlaufen) alle Zeilen, die edit-Komponenten von QWidget. In qt fand ich zwei Methoden findChild und findChildren aber es gibt keine richtige Beispiel gefunden und Mein code zeigt Fehler, 'form' - Objekt hat kein Attribut 'findChild'.
Hier 'form' ist Qwidget form bestehen, die Komponenten Eingabefeld, comboboxes, Qpushbuttons etc.
Code:
lineEdits = form.findChild<QLineEdit>() //This is not working
lineEdits = form.findChild('QLineEdit) //This also not working
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den Unterschriften von
findChild
undfindChildren
unterscheiden sich in PySide/PyQt4, weil es keine echte Entsprechung der C++ - cast-syntax in Python.Statt, Sie haben, um einen Typ (oder
tuple
Arten) als erstes argument, und eine optionale Zeichenfolge als zweites argument (zum Abgleich derobjectName
).Also dein Beispiel sollte so Aussehen:
Beachten Sie, dass
findChild
undfindChildren
sind Methoden derQObject
- also, wenn Sie Ihre form nicht über Sie, es kann nichtQWidget
(weil die alle widgets ErbenQObject
).Verwenden Sie diese Methode, QObject::findChildren(onst QString & name = QString()) ohne Parameter.
Hier ist C++ Beispiel-code: