pyQT4 Signale zwischen GUI und anderen Klassen

Alles rund um die Programmierung mit Qt
Antworten
QTNeuer
Beiträge: 14
Registriert: 17. Oktober 2011 17:54

pyQT4 Signale zwischen GUI und anderen Klassen

Beitrag von QTNeuer »

Hallo,

ich habe ein Projekt in Python für das ich nun eine GUI erstellen möchte. Die Gui besteht im wesentlichen aus ein paar Buttons, die jeweils Methoden verschiedenen Klassen aufrufen sollen und das Ergebnis anzeigen.
Dabei möchte ich gerne die GUI in QTDesigner erstellen und möglichst komplett unabhängig vom restlichen Code haben.
Wie gehe ich hier am besten vor? Ich versteh nicht wie ich die Signale der Buttons mit den bereits existierenden Methoden als Slots verbinde.

Ich habe folgenden Code versucht, aber es klappt nicht da das Signal keinen Slot findet:

Code: Alles auswählen

from PyQt4.QtCore import *
from PyQt4 import QtCore, QtGui, uic

#Gui wird mit uic aus .ui Datei eingelesen. Soll unabhängig vom restlichen Code sein
class MyWindow(QtGui.QDialog):
    def __init__(self):
        super(MyWindow, self).__init__()   
        self.ui = uic.loadUi('gui.ui', self)
        self.ui.show()

#Eine beispielhafte Klasse        
class KlasseA(QObject):

    @pyqtSlot()            
    def funcA(self):
        Ergebnis = ...


#Hauptklasse in der Instanzen der Gui und der übrigen Klassen erzeugt werden und die Signal und Slots entsprechen verbunden werden sollen 
class Main(QtGui.QDialog):
    def __init__(self, parent=None):
        gui = MyWindow()
        KA = KlasseA()
        gui.connect(gui.pB_OpenFile, QtCore.SIGNAL("clicked()"), KA.funcA) 


if __name__ == '__main__':
    app = QtGui.QApplication(sys.argv)
    Main()   
    sys.exit(app.exec_())
Vielen Dank für eure Hilfe!
QTNeuer
Antworten