Frage zu Signal/Slot

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
Friedericus
User
Beiträge: 25
Registriert: Dienstag 21. September 2010, 14:59

Hallo ihr Lieben,

ich hätt da ein Problemchen und hoff dass ihr mir helfen könnt:

ich hab eine GUI gebaut, die auch wunderbar funktioniert.
Folgende Stelle macht mir aber noch probleme:

Code: Alles auswählen

self.connect(okButton, QtCore.SIGNAL('clicked()'), server.start())
hinter server.start befindet sich eine Serverklasse, mit den entsprechenden Parametern.
wenn ich jetzt die GUI jedoch starte, dann wird die GUI mir nicht angezeigt, sondern eben sofort dieser Server gestartet. Jetzt soll er aber eben erst dann gestartet werden, wenn ich den 'OK' Button anklicke.

Wenn ich server.start durch z.B. 'close()' ersetze, läuft alles einwandfrei.

Liegt das evtl. daran, dass die Anweisung im Konstruktor steckt?
lunar

"server.start()" – beachte die Klammern – führt die Methode ".start()" sofort aus, und verbindet das Signal dann mit dem Rückgabewert dieser Methode (was meistens vollkommen unsinnig ist). Du darfst nicht das Ergebnis eines Methodenaufrufs übergeben, sondern nur die Methode selbst:

Code: Alles auswählen

okButton.clicked.connect(server.start)
Antworten