J'ai une classe MainWindow qui a une application Gui fonctionnant dessus et je veux que chaque fois que je clique sur un bouton de mon application, un signal est émis et attrapé par un autre thread. Il est mon exemple de code (désolé pour ne pas poster mon code réel, mais il est vraiment grand maintenant):Comment attraper un signal de la classe QMainWindow par un autre thread sur PySide?
from PySide.QtGui import *
from PySide.QtCore import *
import sys
import mainGui #Gui file
class MainWindow(QMainWindow, mainGui.Ui_MainWindow):
mySignal = Signal()
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
self.setupUi(self)
self.newThread = workThread()
self.newThread.start()
#myButton is part of Gui application
self.myButton.clicked.connect(self.myfunction)
def myfunction(self):
self.mySignal.emit()
(...) #Other functions and methods
class workThread(QThread):
def __init__(self, parent=None):
super(workThread, self).__init__(parent)
#The problem:
MainWindow.mySignal.connect(self.printMessage)
def run(self):
(...)
def printMessage(self):
print("Signal Recived")
(...)
def main():
app = QApplication(sys.argv)
form = MainWindow()
form.show()
app.exec_()
if __name__=="__main__":
main()
... et je reçois l'erreur suivante: MainWindow.mySignal.connect (self.printMessage) AttributeError: l'objet 'PySide.QtCore.Signal' n'a pas d'attribut 'connect'
Il y a des ideia comment puis-je résoudre ceci? Merci d'avance!