我们正在构建一个基于 RaspberryPi 的硬件,并使用 PyQt4 来处理一个 3 英寸小屏幕上的输出。
除了屏幕之外,我们还有一个简单的硬件键盘,需要循环处理以检查按下的键并采取相应措施。
为了简化事情,代码现在看起来像这样:
while True:
gui_initialized = False
current_screen = None
if gui_initialized is False:
app = QtGui.QApplication(sys.argv)
main_win = gui.GUI()
gui_initialized = True
sys.exit(app.exec_())
key_code = kp.getKey()
由于 PyQt4 主循环,此代码是错误的。一旦执行到达生产线sys.exit(app.exec_())
- 它就永远停在那里,永远不会到达key_code = kp.getKey()
。但是我需要key_code = kp.getKey()
在循环中的某个地方执行来处理键盘,并且还需要做其他后台工作。
事实上,通常的 Qt 事件处理在我们的案例中并不真正适用,因为我们没有标准输入工具,只有自定义键盘和 NFC 天线,两者都在主 python 程序中处理。
所以问题是 - 我如何处理我需要与 PyQt4 主循环一起做的额外工作?