5

我使用 QTest 和 unittest 在 PyQt 中编写了一系列单元测试。我的代码传递信号,所以为了确保在测试之前的操作后有足够的时间过去,我加入了一些 qWaits。

APP.ui.serverPortEdit.setText('1234')
QTest.mouseClick(APP.ui.userConnectButton, Qt.LeftButton)
QTest.qWait(2000) #wait for the server to connect
self.checkOnline()

我想在 PySide 中运行相同的测试,但我找不到与 qWait 类似的东西。我忽略了什么吗?PySide qTest 文档没有提及它。

4

2 回答 2

2

你不能用python的time.sleep()吗?

于 2013-07-31T06:18:27.823 回答
2

对于遇到此问题的其他人(我的第一次 Google 搜索)time.sleep()不会处理QEvents。我遇到了这个PyQt4/PySide 包装器,它定义了 qWait 以与 PySide 一起使用:

from datetime import datetime as datetime_, timedelta

@staticmethod
def qWait(t):
    end = datetime_.now() + timedelta(milliseconds=t)
    while datetime_.now() < end:
        QtGui.QApplication.processEvents()
QtTest.QTest.qWait = qWait
于 2016-01-12T13:43:26.383 回答