2013-07-31 2 views
4

Я написал серию модульных тестов в PyQt, используя QTest и unittest. Мой код передает сигналы, поэтому, чтобы обеспечить достаточное время после операции перед тестированием, я бросаю некоторые qWaits.q Ожидать аналог в PySide?

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

Не можете ли вы использовать python time.sleep()?

+0

Похоже, что я могу в этом случае. Благодаря! – taynaron

1

Для других, которые сталкиваются с этим (мой первый хит Google) time.sleep() не обрабатывается QEvent s. Я наткнулся на это PyQt4/PySide wrapper, который определяет 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 
Смежные вопросы