4
我想用QTest做一些測試。我有一個QListWidget,我想單擊以獲得選擇。但點擊後,沒有選擇。有沒有人有任何想法?問題與QTest :: mouseClick 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();
};
這裏是用來顯示的問題
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年9月(我使用PyQt5 btw) – sunyata
它也仍然在2017年工作。但是,它不適用於雙擊... –