PyQt定时器/休眠的正确使用

2024-09-28 05:17:44 发布

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

如何正确使用QtTimer?在

我有一个按钮连接到一个方法,它基本上做一些数学运算,但是我想迭代它,一次看到一个结果,它们之间的延迟为1秒。在

在正常的书写中我会使用

for i in xrange(10):
   domath(i)
   sleep(1)

但是在GUI中它不起作用,因为它冻结了GUI,我看不到结果。10秒后我才看到最后一次迭代。在

我试过QtTimer,但似乎不起作用。在

^{pr2}$

它直接到最后一次迭代。我错过什么了吗?在


Tags: 方法inforgui数学sleep按钮我会
1条回答
网友
1楼 · 发布于 2024-09-28 05:17:44

我个人会这样写:

class A(QObject):
    def __init__(self):
        self.counter = 0
        Timer.singleShot(100, self.domath())

    Slot()
    def domath(self):
        # do the computation
        self.counter += 1
        if self.counter != 10:
            Timer.singleShot(100, self.domath())
        else:
            self.counter = 0;

免责声明:尽管它看起来像PyQt代码,但这只是伪代码。我从来没有测试过等等,但在我看来这个概念是有效的。在

相关问题 更多 >

    热门问题