Я пытаюсь использовать QTest для проведения некоторых тестов. У меня есть QListWidget, который я бы хотел щелкнуть, чтобы получить выбор. Но после щелчка ничего не выбрано. У кого-нибудь есть идеи?Проблемы с QTest :: mouseClick on QListWidget
Вот мой тестовый класс
void TestGui::List() {
TestDialog dlg;
dlg.show();
// Click on the centre of the second object
QListWidget *list = dlg.ListWidget();
QListWidgetItem *item = list->item (1);
QRect rect = list->visualItemRect (item);
QTest::mouseClick (list, Qt::LeftButton, 0, rect.center());
// Check if something was selected
QCOMPARE (list->currentRow(), 1);
QVERIFY (list->currentItem() != NULL);
QCOMPARE (list->currentItem()->text(), QString ("Two"));
}
Ниже тестирования класса
class TestGui: public QObject {
Q_OBJECT
private slots:
void List();
};
А вот класс TestDialog используется для отображения проблемы
class TestDialog : public QDialog {
Q_OBJECT
public:
TestDialog (QWidget *parent = NULL)
: QDialog (parent, Qt::CustomizeWindowHint | Qt::WindowCloseButtonHint) {
QVBoxLayout *layout = new QVBoxLayout (this);
m_list = new QListWidget (this);
m_list->addItem ("One");
m_list->addItem ("Two");
m_list->addItem ("Three");
m_list->addItem ("Four");
layout->addWidget (m_list);
QPushButton *close_button = new QPushButton("Close");
connect (close_button, SIGNAL (clicked()), this, SLOT (close()));
layout->addWidget (close_button);
setWindowTitle("Test");
}
QListWidget *ListWidget (void) {
return m_list;
};
private:
QListWidget *m_list;
}; // TestDialog
Блестящий! Это все еще работает в сентябре 2017 года (я использую PyQt5 btw) – sunyata
Он также по-прежнему работает в октябре 2017 года. Однако он не работает с двойными щелчками ... –