PyQt应用程序和无限循环

时间:2014-08-01 12:42:57

标签: python pyqt pyqt4

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应用程序?

感谢。

1 个答案:

答案 0 :(得分:4)

pyqt带有自己的(无限)事件循环,因此您无需构建自己的事件循环。 app.exec_()进入此循环,这就是您没有看到执行后的代码的原因。只有在关闭所有qt窗口后,才能执行任何剩余的操作。

QTimer用法示例:

main()之前exec_()中的

def timout():
    if win32api.GetAsyncKeyState(win32con.VK_SHIFT):
        print(True)

timer = QtCore.QTimer(self)
timer.timeout.connect(timeout)
timer.start(100)