python - 如何在进入Qt事件循环后自动执行一个方法?

标签 python multithreading timer pyqt4 event-loop

我想执行一个只能在我的 QApplication 显示时调用的方法,即当它进入其主事件循环 exec_() 时。我是 Qt4 的新手(使用 PyQt4):我希望有一个类似 on_start() 的回调,但没有找到。 我需要创建线程还是计时器?还是 API 中已经包含了一些回调?

最佳答案

您可以为此使用单次计时器,如以下简单脚本所示:

import sys
from PyQt4 import QtGui, QtCore

app = QtGui.QApplication(sys.argv)

def on_start():
    print(' in event loop!')
    print(' telling app to exit ...')
    app.exit(123)

QtCore.QTimer.singleShot(0, on_start)
print('About to enter event loop')
rc = app.exec_()
print('All done - returned %d' % rc)

当你运行它时,你应该看到

About to enter event loop
 in event loop!
 telling app to exit ...
All done - returned 123

关于python - 如何在进入Qt事件循环后自动执行一个方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6215690/

相关文章:

python - websocket 扩展位

python - LED闪烁如何打发时间。 sleep RPI

ios - 为什么我的 NSTimer 会双倍递减我的计时器?

c - 非阻塞 pthread_join

c# - Lucas Lehmer 优化

循环中的javascript超时

c# - System.Timers 定时器不触发事件

python - 如何迭代多个正则表达式匹配并替换它们?

python - 如何创建国际化的 Google App Engine 应用程序

python - 如何将标题大写句子与介词匹配?