所以我写了这个用来实现4个标签的软件(现在8个)。现在,每个选项卡都是自己的QThread,显然还有一个通用的GUI线程。当需要更新时,工作线程(选项卡线程)将数据发送回GUI线程。例如,我在GUI线程中有一个statusBar文本,每次工作线程执行某些操作时都需要更新。我正在使用SIGNAL / SLOT,我检测传入SIGNAL的方式是这样的:
def setStatus(self, status):
#Defining SIGNAL sender
self.sender = QObject().sender()
if "module1" in str(self.sender):
self.module1CurrentStatus.setText(status)
现在这一切都有效,但就像我说的那样,软件已经从实现4个标签增加到实现8个标签。有没有更好的方法来实现它,而不是使用sender()
?我只是在寻找一些只能为所有模块编写一次的东西,这是GUI自动知道SIGNAL来自哪个线程的一种方式。我知道我可以为每个模块写一个单独的SIGNAL,但我没有做到这一点。
答案 0 :(得分:0)
如果我正确理解您的要求,您可以使用QSignalMapper
重新发出带有标识符的信号。
答案 1 :(得分:-1)
模块名称可以通过__name__
获取,除非文件作为脚本运行。