Slot aus Funktion heraus aufrufen

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
Shaldy
User
Beiträge: 123
Registriert: Sonntag 2. März 2008, 22:49

Hi, Leute!

Mein Problem ist, dass ich ein listWidget aus einer Funktion heraus komplett leeren will. Eine Funktion dafür hab ich nicht gefunden, dafür aber den Slot "clear()".

Ich will den Slot aber nicht mit einem Signal verbinden sondern explizit aufrufen.

Wie funktioniert sowas?

EDIT: Ok hab die Methode clear() ausprobiert und es funktioniert. Meine neue Frage wäre nun ob ich jeden Slot einfach als Funktion aufrufen kann oder nur Glück gehabt hab?!
Dies ist keine Signatur!
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Das funktioniert immer.
Shaldy
User
Beiträge: 123
Registriert: Sonntag 2. März 2008, 22:49

Danke ;)

Jetzt hab ich noch eine Frage:

Ich habe über QtCore.QObject.connect() ein doubleSpinBox widget mit einer selbstgeschriebenen Funktion verknüpft.
Als Signal habe ich QtCore.SIGNAL("valueChanged(double d)") verwendet.
Leider wird die Funktion aber überhaupt nicht aufgerufen.

Code: Alles auswählen

QtCore.QObject.connect(self.ui.doubleSpinBox, QtCore.SIGNAL("valueChanged(double d)"), \
        self.func)
Dies ist keine Signatur!
ichisich
User
Beiträge: 134
Registriert: Freitag 1. Januar 2010, 11:52

Falls noch aktuell:

Code: Alles auswählen

self.connect(self.spinBox, SIGNAL("valueChanged(double)"), self.machWas)
Funktion machWas:

Code: Alles auswählen

def machWas(self, derDoubleWert):
        print derDoubleWert
Das gleich gilt für spinBoxen:

Code: Alles auswählen

"valueChanged(int)"
anstelle

Code: Alles auswählen

"valueChanged(int i)"
Im Zweifel immer:
http://www.riverbankcomputing.co.uk/sta ... asses.html
lunar

Oder ab PyQt 4.5:

Code: Alles auswählen

self.ui.spinbox.valueChanged[double].connect(self.my_very_cool_slot)
Antworten