ファイルから項目を読み込んだ後にQt5.7アプリケーションを作成しています。QListView
を入力しています。ここにはその正確なコードがあります。Qt5:リストビューでクリックした項目の値を取得する
QStringListModel *model;
model = new QStringListModel(this);
model->setStringList(stringList); //stringList has a list of strings
ui->listView->setModel(model);
ui->listView->setEditTriggers(QAbstractItemView::NoEditTriggers); //To disable editing
これで、私が設定したQListView
のリストが表示されます。私が今必要とするのは、ダブルクリックされた文字列を取得し、その値を他の場所で使用することです。どのように達成するのですか?
私は何をやってみましたがQListView
にリスナーを添付する
... // the rest of the code
connect(ui->listView, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(fetch()));
...
この方法でした。そして、私は機能fetch
void Window::fetch() {
qDebug() << "Something was clicked!";
QObject *s = sender();
qDebug() << s->objectName();
}
しかしobjectName()
関数が返す「リストビュー」およびないListViewコントロールを持っていますアイテムまたはインデックス
スロットにパラメータとして 'QModelIndex'を追加し、そのスロットで動作させる必要があります。 – Hayt