Вопрос

У меня есть указатель на третью сторону QListView объект, который просто отображает строки текста.Каков наилучший способ получить эту строку текста?

Это было полезно?

Решение

Модель, доступная QListView::model(), удерживает предметы.Вы можете сделать что-то вроде этого:

QListView* view ; // The view of interest

QAbstractItemModel* model = view->model() ;
QStringList strings ;
for ( int i = 0 ; i < model->rowCount() ; ++i )
{
  // Get item at row i, col 0.
  strings << model->index( i, 0 ).data( Qt::DisplayRole ).toString() ;
}

Вы также упоминаете, что хотели бы получать обновленные строки при написании текста — вы можете сделать это, подключив модель dataChanged() сигнал вашей функции, которая извлекает строки.Видеть QAbstractItemModel::dataChanged().

Другие советы

Вы можете запросить у объекта QListView его корневой QModelIndex и использовать его для перебора различных записей с помощью родственных/дочерних методов.Вы можете получить доступ к тексту, связанному с каждым индексом, вызвав метод данных индекса с ролью, указанной как Qt::DisplayRole.

Более подробную информацию см. в следующей документации:

QAbstractItemView — родительский класс для QListView

Кмоделиндекс

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top