在 QListView 中显示最后一个元素
Show Last element in 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);
}
}
在此函数中,显示的元素也应该是最后一个。
- 创建一个 class 属性来保存最后一个索引
- 将 QAbstractItemModel::rowsInserted 连接到您的应用程序中的插槽
- 在插槽中相应地更新索引
QAbstractItemView::scrollTo
Scrolls the view if necessary to ensure that the item at index is
visible. The view will try to position the item according to the given
hint.
http://doc.qt.io/archives/qt-4.8/qabstractitemview.html#scrollTo
这听起来微不足道,但我找不到在 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);
}
}
在此函数中,显示的元素也应该是最后一个。
- 创建一个 class 属性来保存最后一个索引
- 将 QAbstractItemModel::rowsInserted 连接到您的应用程序中的插槽
- 在插槽中相应地更新索引
QAbstractItemView::scrollTo
Scrolls the view if necessary to ensure that the item at index is visible. The view will try to position the item according to the given hint.
http://doc.qt.io/archives/qt-4.8/qabstractitemview.html#scrollTo