Получение текста из QListView
Вопрос
У меня есть указатель на третью сторону 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