向QTimer超时信号传递参数?

2024-04-25 07:14:23 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

我认为需要将QTimer子类化并重写timeout或{}方法的想法是否正确?如果是的话,那我该怎么做呢?我几乎没有任何经验覆盖现有的方法,谷歌并没有带来很多结果(有一些C++,我不理解)。我已经设法做了一些事情(例如,我重写了start()方法的代码,但是原始start方法的代码无法执行(可以理解),而且我不知道该代码应该是什么。在

还是有别的办法?在


Tags: 方法代码程序应用程序参数timeout经验事情
1条回答
网友
1楼 · 发布于 2024-04-25 07:14:23

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的操作来绑定一些参数,所以如果您有这个

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...

如果您想根据应用程序的某些当前条件提供不同的初始化参数,那么最好根据特定项的更改使用自定义信号/插槽。或者保持“当前”状态是我在别处修改initParams。在

相关问题 更多 >