python - 将参数传递给 QTimer 超时信号?

标签 python qt pyqt scheduled-tasks

我正在使用 Python 和 PySide(PyQt 的替代品)。我有一个在后台运行的应用程序,我想使用 QTimer 来安排一些要执行的任务。

但是,我需要 QTimer 来调用我程序中的一个方法,但是这个方法需要“初始化参数”来指定方法应该做什么。

我是否正确地认为我需要继承 QTimer 并覆盖 timeoutstart 方法?如果是这样,那么我将如何处理哪一个?我几乎没有覆盖现有方法的经验,谷歌搜索也没有找到很多结果(有一些我不理解的 C++)。我已经设法做了一些事情(例如我覆盖了 start() 方法,但是原始 start 方法的代码没有执行(可以理解)而且我不知道该代码应该是什么是。

或者有其他方法吗?

最佳答案

However, I need the QTimer to call one method in my program, but this method requires the "initialization parameters" that will specify what exactly is method supposed to do.

初始化参数是否改变?我可能会做一些涉及 functools.partial 的事情绑定(bind)一些参数,所以如果你有这个

import functools
from PySide.QtCore import QTimer

def onTimer(initParams):
    # use initParams
    # your code here...

myInitParams = "Init!"
timerCallback = functools.partial(onTimer, initParams=myInitParams)
myTimer = QTimer()
myTimer.timeout.connect(timerCallback)
myTimer.start( 1000) #once a sec

#Your QApplication goes below...

如果您想根据应用程序的某些当前状况提供不同 init 参数,您最好根据特定项目的更改时间使用自定义信号/插槽。或者保持任何“当前”状态是我在其他地方修改 initParams。

关于python - 将参数传递给 QTimer 超时信号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13202014/

相关文章:

python - PyQT 和 Visual Studio 2010

python - pyqt QTreeWidgetItem双击连接

python - 如何拖放带有自定义项目小部件的 QListWidget 项目?

python - 你如何从 sip.voidptr (QImage.constBits()) 到 ctypes void 或 char 指针?

qt - 我可以在运行时更改像素比(屏幕)吗?

qt -/usr/bin/ld : cannot find -lfreetype qt

带转义单引号的单引号字符串上的 Python 正则表达式

python - 在 python 中打印列表中的所有项目时出现问题

python - Bokeh 中一个图中的多个图表

python - 如何在 Django 中使用 <div class ='field_type'> 标记表单字段