PyQt应用程序和无限循环


def main():
    app = QtGui.QApplication(sys.argv)
    gui = GUIClass()
    gui.showUI()
    app.exec_()
    while True:
        if win32api.GetAsyncKeyState(win32con.VK_SHIFT):
            print(True)
if __name__ == '__main__':
    main()

app.exec_()之后的代码没有运行。如何做无限循环和运行我的PyQt应用程序?

谢谢。

pyqt自带(无限)事件循环,因此您不必构建自己的事件循环。app.exec_()进入这个循环,这就是为什么您没有看到后面执行的代码。只有在你关闭了所有qt窗口后,才会执行剩余的操作。

QTimer使用示例:

exec_()之前的main()中:

def timout():
    if win32api.GetAsyncKeyState(win32con.VK_SHIFT):
        print(True)
timer = QtCore.QTimer(self)
timer.timeout.connect(timeout)
timer.start(100)

最新更新