Seite 1 von 1
objekte einer Form abfragen
Verfasst: Sonntag 29. November 2009, 20:33
von alpha
Hallo Forum,
ich will alle Objekte auf einer Form abfragen so in der Art:
Code: Alles auswählen
for widget in Form:
if widget.name == gesuchtername:
widget.setText() = "hallo"
Das war nur natürlich nur so ein Pseudocode, aber ich hoffe ich konnte verständlichmachen was ich suche. Vielleicht hat jemand ein paar Beispielcodezeilen für mich.
Grüße und einen schönen abend
alpha
Verfasst: Sonntag 29. November 2009, 21:51
von lunar
QObject.findChild und
QObject.findChildren():
Code: Alles auswählen
# das erste Steuerelement namens foo
widget = form.findChild(QWidget, 'foo')
# alle Steuerelemente namens foo
for widget in form.findChildren(QWidget, 'foo'):
widget.doit()
# oder auch mit regulären Ausdrücken
pattern = QRexExp('some.*pattern')
for widget in form.findChildren(QWidget, pattern):
widget.doit()
Verfasst: Montag 30. November 2009, 09:03
von alpha
Hi lunar,
genau was ich gesucht habe. Werde ich (hoffentlich) heute Abend gleich mal ausprobieren. Ich danke Dir.
Gruß
alpha
Verfasst: Montag 30. November 2009, 18:18
von alpha
Hallo lunar,
hat ja super geklappt jetzt habe ich nur noch das Problem, dass ich in einer ComboBox den Wert speichere. Beim Wiederherstellen muss ich aber den Index setzen... Soweit kein Problem, aber wenn ich in der Funktion
angebe bekomme ich folgende Fehlermeldung:
TypeError: argument 2 of QComboBox.findText() has an invalid type
in der QT Dokumentation habe ich folgendes gefunden
int QComboBox::findText ( const QString & text, Qt::MatchFlags flags = Qt::MatchExactly | Qt::MatchCaseSensitive ) const
Jetzt die Preisfrage.. WIe setze ich die MatchFlags richtig?
Hoffe Du kannst mir noch einmal helfen
Grüße
alpha
Verfasst: Montag 30. November 2009, 19:34
von lunar
Die Match-Flags sind ein optionales Argument, Du musst es nicht setzen. Ansonsten musst Du eben eine Kombination entsprechender Flags mitgeben, eben z.B. "Qt.MatchExcatly | Qt.MatchCaseSensitive".
Verfasst: Montag 30. November 2009, 20:22
von alpha
Da seh ich den Wald vor bäumen nicht.. ich hätte schwören können ich hätte einen Fehler bekommen, daß ich zu wenig Argumente übergeben hätte... Ich danke Dir lunar.
Schönen Abend
alpha