如何在Qt中从QListView选择项中获取QString?

Mar*_*inS 17 qstring qt qlistview

我需要在QListView中将选定的项目名称作为QString.我试过谷歌,但我还没发现任何有用的东西.

KCi*_*era 21

这取决于selectionMode让我们说你有ExtendedSelection这意味着你可以选择任意数量的项目(包括0).

ui->listView->setSelectionMode(QAbstractItemView::ExtendedSelection);
Run Code Online (Sandbox Code Playgroud)

您应该遍历ui->listView->selectionModel()->selectedIndexes()以查找所选项的索引,然后调用text()方法来获取项文本:

QStringList list;
foreach(const QModelIndex &index, 
        ui->listView->selectionModel()->selectedIndexes())
    list.append(model->itemFromIndex(index)->text());
qDebug() << list.join(",");
Run Code Online (Sandbox Code Playgroud)

  • 什么是"模特"? (3认同)

vic*_*ann 13

如果QAbstractItemView::ExtendedSelection禁用(只能一次选择一个项目),这是你可以在没有任何循环的情况下完成的:

QModelIndex index = ui->listView->currentIndex();
QString itemText = index.data(Qt::DisplayRole).toString();
Run Code Online (Sandbox Code Playgroud)