2024-05-23 16:53:59 发布
网友
我使用的是Python和PySide(PyQt替代方法)。我有一个在后台运行的应用程序,我想用QTimer来安排一些要执行的任务。在
然而,我需要QTimer在我的程序中调用一个方法,但是这个方法需要“初始化参数”,它将指定方法应该做什么。在
我认为需要将QTimer子类化并重写timeout或{}方法的想法是否正确?如果是的话,那我该怎么做呢?我几乎没有任何经验覆盖现有的方法,谷歌并没有带来很多结果(有一些C++,我不理解)。我已经设法做了一些事情(例如,我重写了start()方法的代码,但是原始start方法的代码无法执行(可以理解),而且我不知道该代码应该是什么。在
timeout
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的操作来绑定一些参数,所以如果您有这个
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。在
初始化参数是否发生变化?我可能会做一些涉及functools.partial的操作来绑定一些参数,所以如果您有这个
如果您想根据应用程序的某些当前条件提供不同的初始化参数,那么最好根据特定项的更改使用自定义信号/插槽。或者保持“当前”状态是我在别处修改initParams。在
相关问题 更多 >
编程相关推荐