Ich mache eine Qt5.7-Anwendung, wo ich eine QListView
nach dem Lesen von Sachen aus einer Datei bevölkern. Hier ist der genaue Code davon.Qt5: Holen Wert des Artikels in einem Listenansicht geklickt
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
Nun zeigt diese Liste nur gut in einem QListView
, die ich eingerichtet haben. Was ich jetzt tun muss, ist, die Zeichenfolge zu erhalten, auf die doppelt geklickt wurde, und diesen Wert woanders zu verwenden. Wie erreiche ich das?
Was ich versucht zu tun war ein Zuhörer auf die QListView
auf diese Weise zu befestigen
... // the rest of the code
connect(ui->listView, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(fetch()));
...
Und dann habe ich die Funktion fetch
void Window::fetch() {
qDebug() << "Something was clicked!";
QObject *s = sender();
qDebug() << s->objectName();
}
jedoch die objectName()
Funktion gibt „Listview“ und nicht das Listview Artikel oder der Index.
Sie sollten einen 'QModelIndex' als Parameter zu Ihrem Slot hinzufügen und damit arbeiten. – Hayt