переход с модели Inherited QThread на Worker

Так что через большую помощь в моих предыдущих вопросах (Прерывание QThread сна а такжеPySide передает сигналы из QThread в слот в другом QThread) Решил попытаться поменять с наследственногоQThread модель для модели работника. Я думаю, что я должен остаться сQThread модель как у меня так работала, а другой модели нет. Однако я не уверен, почему модель Worker не работает для меня.

Я пытаюсь сделать это, пожалуйста, дайте мне знать, если в моей методологии что-то не так?

у меня естьQtGui.QWidget это мой основной графический интерфейс. Я используюQPushButton чтобы сигнализировать, что я попытался свести код к основам, где я считаю, что проблема. Я подтвердил, чтоdatagramHandled Signal испускается, ноpacket_handled Slot кажется, не позвонили.

class myObject(QtCore.QObject):
    def __init__(self):
        super(myObject, self).__init__()
        self.ready=False

    @QtCore.Slot()
    def do_work(self):
        #send a packet
        self.ready=False
        while not self.ready:
            time.sleep(0.01)

    @QtCore.Slot(int)
    def packet_handled(self, errorCode):
        print "Packet received."
        self.ready = True

class myWidget(QtGui.QWidget):
    datagramHandled = QtCore.Signal(int)
    startRunThread = QtCore.Signal()
    def __init__(self,parent=None, **kwargs):
        super(myWidget, self).__init__(parent=parent)
        # Bunch of GUI setup stuff (working)
        self.myRunThread = QtCore.QThread()
    @QtCore.Slot()
    def run_command(self):
        self.myRunObj = myObject()
        self.myRunObj.moveToThread(self.myRunThread)
        self.datagramHandled.connect(self.myRunObj.packet_handled)
        self.startRunThread.connect(self.myRunObj.do_work)
        self.myRunThread.start()
        self.startRunThread.emit()

    @QtCore.Slot()
    def handle_datagram(self):
        #handle the incoming datagram
        errorCode = 0
        self.datagramHandled.emit(errorCode)

Ответы на вопрос(3)

Ваш ответ на вопрос