一。背景信息
我在里面工作
Python 3.7
Pyqt5
使您能够触发自定义pyqt信号。例如:
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
class MyClass(QObject):
mysignal = pyqtSignal(str)
def __init__(self):
super().__init__()
self.mysignal.connect(self.bar)
return
def foo(self):
self.mysignal.emit("foobar")
return
@pyqtSlot
def bar(self, mystr):
print("signal received: {0}".format(mystr))
return
2。问题
事件侦听器循环
在主线程中:它等待队列上的传入事件,并逐个处理它们。这些事件大多是用户调用的,比如按下按钮、单击某个东西。。。
如果以编程方式触发pyqt信号,如
foo()
上面的函数,您还可以将事件推送到这个队列(我想)。这应该没什么大不了的,除非你在短时间内发出过多的pyqt信号。队列被淹没,用户事件无法及时处理。用户看到一个冻结的GUI。
解决这个问题的一个方法是给程序触发的pyqt信号分配低优先级。这可能吗?怎么用?
如果没有-你知道其他解决问题的方法吗?