Как я могу получить индексы QListWidget::selectedItems()?

Я имею QListWidget и мне нужно получить индексы выбранных предметов. (Я мог бы работать с элементами в списке по значениям, но у меня есть std::vector который содержит некоторые объекты для каждого элемента в списке, и мне также нужно удалить их из него.) Есть функция indexFromItem но он защищен (?), поэтому я не могу его использовать.

Есть идеи?

QList<QListWidgetItem *> itemList = lw1->selectedItems();

1 ответ

Решение

Вы можете использовать возможно:

list->selectionModel()->selectedIndexes()

куда list это пример QListWidget,
Не уверен, что он возвращает именно то, что вы ищете.

Из документации:

Возвращает список всех выбранных индексов модели. Список не содержит дубликатов и не отсортирован.

QListWidget имеет метод с именем selectedIndexes также, но это защищенный, поэтому вы должны использовать такой хитрый способ, чтобы получить их.

Я не уверен, что это правильный путь, но это работает для меня:

void ScannerWindow::on_ipList_itemDoubleClicked(QListWidgetItem *item)
{
    qDebug() << ui->ipList->row(item);
}

где ui->ipList это QListWidget

Другие вопросы по тегам