Hi, I've been migrating some of my�PyQt tools to the new Qt setup with 6.3. For the most part its been straight forward but Im having problems with tools that utilizes worker threads.�Specifically when I'm emitting signals from a worker QThread and connecting that to my Dialog thread.� If Im not connecting to the emitting signals in the Dialog everything works fine. Any ideas what I'm doing wrong? I added an example that works fine in Nuke 6.2 with the old Qt setup but instantly crashes when�it�gets a signal�in 6.3. Cheers Christoffer Hulusj� Here is an example at�pastebin, http://pastebin.com/4kgM56yv Below is same example attached. -------------------------------------------------------------------------- from PyQt4 import QtCore, QtGui import time class WorkerThread(QtCore.QThread): ��� ��� progressEvent = QtCore.pyqtSignal(QtCore.QString) ��� ��� def __init__(self, parent=None): ������� super(WorkerThread, self).__init__(parent) ������� ��� def run(self): ������� self.progressEvent.emit('Starting processing..') ������� time.sleep(2) ������� self.progressEvent.emit('Finished processing..')������� ������� class UserInterfaceDialog(QtGui.QDialog): ��� �� ��� def __init__(self, parent=None): ������� super(UserInterfaceDialog, self).__init__(parent) ������� self.workerThread = WorkerThread() ������� self.workerThread.progressEvent.connect(self.setStatus) ������� ������� self.statusBox = QtGui.QTextEdit('Idle..') ������� self.startButton = QtGui.QPushButton('Start worker thread') ������� ������� self.startButton.clicked.connect(self.startButtonClicked) ������� hBox = QtGui.QVBoxLayout() ������� hBox.addWidget(self.statusBox) ������� hBox.addWidget(self.startButton) ������� self.setLayout(hBox) ��� def setStatus(self, statusMessage): ������� self.statusBox.setText(statusMessage) ��� ��� def startButtonClicked(self): ������� self.workerThread.start() ������� dialog = None def testNuke62(): ��� from nukescripts import pyQtAppUtils ��� def initPyQtDialog(pyQtApp): ������� app = pyQtApp.getApplication(['UserInterfaceDialog']) ������� dialog = UserInterfaceDialog() ������� dialog.show() ������� app.exec_() ��� pyQtApp = pyQtAppUtils.pyQtAppHelper(start = True) ��� pyQtApp.run(initPyQtDialog, (pyQtApp,)) �� ��� def testNuke63(): ��� global dialog ��� dialog = UserInterfaceDialog() ��� dialog.show() testNuke63()
_______________________________________________ Nuke-python mailing list [email protected], http://forums.thefoundry.co.uk/ http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
