私は .qml ファイルで ListView のシグナルをキャッチしようとしているので、次のようにしています:
ListView *userList = root->findChild<ListView*>("userList");
Q_ASSERT(userList);
それはリストを取得し、私が試したとき:
Q_ASSERT(connect(userList, SIGNAL(triggered(QVariantList indexPath)), this, SLOT(onUserListTriggered(QVariantList indexPath))));
次のエラーが表示されます。
Object::connect: No such signal bb::cascades::QmlListView::triggered(QVariantList indexPath)
Object::connect: (sender name: 'userList')
ASSERT: "connect(userList, SIGNAL(triggered(QVariantList indexPath)), this, SLOT(onUserListTriggered(QVariantList indexPath)))"
意味がない。ListViewのドキュメントは、クラスがこのシグナルを発することを示しており、ヘッダー listview.h で次のように確認できます。
Q_SIGNALS:
/*!
* @brief Emitted when a list item is triggered by the user.
*
* Typically, this signal is emitted when an item is tapped by the user
* with the intention to execute some action associated with it.
* This signal is, for example, not emitted when items are tapped
* during multiple selection, where the intention is to select the
* tapped item and not trigger an action associated with it.
*
* @param indexPath Index path to the triggered item.
*/
void triggered(QVariantList indexPath);