Я использую itemdelegate для создания combobox для одного столбца внутри дерева.mouseclick/keyclick не работает для виджета делегата внутри treeview в рамках QTest
поэтому при редактировании ячейки нажатие UP/Down может изменить значение.
Но, кажется, я не могу имитировать ниже операции с использованием QTest рамки
QTest::keyClick(treeview_->focusWidget(), Qt::Key_Down);
QTest::keyClick(treeview_->focusWidget(), Qt::Key_Down);
QTest::keyClick(treeview_->focusWidget(), Qt::Key_Enter);
//after these code. the value of the cell should be 3.03.
Эти коды выше работает хорошо для нормального кварт приложения.
Но он не работает в QTest рамках
при попытке проверить его с помощью QTest рамки, значение ячейки всегда 1,01
class MyTest: public QObject
{
Q_OBJECT
public:
...
void tst_combo_column();
...
private:
};
void MyTest::tst_combo_column()
{
...
treeview_->setCurrentIndex(idx_combo);
treeview_->edit(idx_combo);
QTest::keyClick(treeview_->focusWidget(), Qt::Key_Down);
QTest::keyClick(treeview_->focusWidget(), Qt::Key_Down);
QTest::keyClick(treeview_->focusWidget(), Qt::Key_Enter);
QVERIFY(GET_COL_VALUE("options") == "3.03"); //can not pass
}
Я также попытался MouseClick, но получил та же проблема.
Моя среда Qt5.5, ubuntu14.10
решен с помощью QApplication :: processEvents() – camino