我正在使用Visual Studio开发一个PyQt应用程序。
调试一直非常顺利,直到我决定通过使用Qt Threads将一些内容移动到工作线程以保持UI的响应性。
任何在我的worker对象上调用的函数都通过信号槽进行连接。
class MainWindow(base, form):
start_work = QtCore.pyqtSignal()
def __init__(self, parent=None):
# Create a seperate thread in which the update information is polled.
self.thread = QtCore.QThread()
# Create Worker object and move it to new thread
self.worker = Worker()
self.worker.moveToThread(self.thread)
# connect signal to start work in the extra tread
self.start_work.connect(self.worker.get_work_done)
self.thread.start()
#function emit a signal to start doing the work
def do_work(self):
self.startWork.emit()
任何在我的worker对象上调用的函数都通过信号槽进行连接。
class Worker(QtCore.QObject):
@QtCore.pyqtSlot()
def get_work_done(self):
#lets do some time consuming work.
代码运行正常。唯一的问题是,我现在无法调试get_work_done
函数内发生的任何事情。Visual Studio不会在这些断点处中断。
当我在任何一个MainWindow
函数中中断时,Visual Studio调试器只显示一个线程。它似乎不知道应用程序创建的任何其他线程。