q在PySide中使用类似物?

时间:2013-07-31 01:30:35

标签: pyqt pyside qtestlib

我使用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 docs没有提到它。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

对于遇到这种情况的其他人(我的第一次Google点击)time.sleep()不会处理QEvent。我遇到了PyQt4/PySide wrapper,它定义了与PySide一起使用的qWait:

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