Python 是否将参数传递给QTimer超时信号?
我正在使用Python和PySide(PyQt的替代方案)。我有一个在后台运行的应用程序,我想使用QTimer来安排一些要执行的任务 然而,我需要QTimer在我的程序中调用一个方法,但是这个方法需要“初始化参数”,它将指定这个方法应该做什么 我认为我需要将QTimer子类化并覆盖Python 是否将参数传递给QTimer超时信号?,python,qt,pyqt,scheduled-tasks,Python,Qt,Pyqt,Scheduled Tasks,我正在使用Python和PySide(PyQt的替代方案)。我有一个在后台运行的应用程序,我想使用QTimer来安排一些要执行的任务 然而,我需要QTimer在我的程序中调用一个方法,但是这个方法需要“初始化参数”,它将指定这个方法应该做什么 我认为我需要将QTimer子类化并覆盖timeout或start方法,这是正确的吗?如果是的话,那我该怎么做?我几乎没有任何经验覆盖现有的方法,谷歌并没有带来很多结果(有一些C++,我不理解)。我已经设法做了一些事情(例如,我重写了start()方法,但是
timeout
或start
方法,这是正确的吗?如果是的话,那我该怎么做?我几乎没有任何经验覆盖现有的方法,谷歌并没有带来很多结果(有一些C++,我不理解)。我已经设法做了一些事情(例如,我重写了start()
方法,但是原始start方法的代码没有执行(可以理解),我不知道该代码应该是什么
还是有别的办法
然而,我需要QTimer在我的程序中调用一个方法,但是这个方法需要“初始化参数”,它将指定这个方法应该做什么
初始化参数在变化吗?我可能会做一些涉及到绑定一些参数的事情,所以如果你有这个
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。谢谢!你让我跳出框框思考,我一直在尝试通过QTimer传递参数,我没有想到非Qt方式。但是,如果我错了,请纠正我,但我相信你的代码有错误-应该是
functools.partial(onTimer,myInitParams)
?