Показать последний элемент в QListView

Это звучит тривиально, но я не смог найти функцию для отображения последнего добавленного элемента в QListView.

Работает с моделью

// Create model
model = new QStringListModel(this);

// Make data
QStringList List;
// Populate our model
model->setStringList(List);
// Glue model and view together
listView->setModel(model);

Элементы добавляются с

void WidgetMessageList::addString(const QString & message)
{
if(model->insertRow(model->rowCount())) {
QModelIndex index = model->index(model->rowCount() - 1, 0);
model->setData(index, message);
}
}

В этой функции показанный элемент также должен быть последним.

0

Решение

QAbstractItemView :: scrollTo

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

http://doc.qt.io/archives/qt-4.8/qabstractitemview.html#scrollTo

1

Другие решения

  1. Создайте класс attibute для хранения последнего индекса
  2. соединять QAbstractItemModel :: rowsInserted в слот в вашем приложении
  3. В слоте обновите индекс соответственно
0

По вопросам рекламы [email protected]