QTest を使用していくつかのテストを実行しようとしています。クリックして選択したい 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