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