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_())
QTNeuer