QT之QListView的简介

QT之QListView的简介

成员函数

显示列表或网格中的数据。以下是一些常用成员函数的介绍:
1)QListView(QWidget *parent = nullptr)

构造函数,创建一个 QListView 对象。

2)void setModel(QAbstractItemModel *model):

设置要显示的数据模型。

3)QAbstractItemModel *model() const

返回当前设置的数据模型。

4)void setRootIndex(const QModelIndex &index)

设置根索引。

5)QModelIndex rootIndex() const

返回根索引。

6)void setSelectionModel(QItemSelectionModel *selectionModel)

设置选择模型。

7)QItemSelectionModel *selectionModel() const

返回当前设置的选择模型。

8)void setItemDelegate(QAbstractItemDelegate *delegate):

设置项目代理。

9)QAbstractItemDelegate *itemDelegate() const

返回当前设置的项目代理。

10)void setEditTriggers(EditTriggers triggers)

设置编辑触发器。

11)EditTriggers editTriggers() const

返回编辑触发器。

12)void setSelectionMode(SelectionMode mode)

设置选择模式。

13)SelectionMode selectionMode() const

返回选择模式。

14)void setViewMode(ViewMode mode)

设置视图模式。

15)ViewMode viewMode() const

返回视图模式。

16)void setMovement(Movement movement)

设置滚动方式。

17)Movement movement() const

返回滚动方式

18)void setSortingEnabled(bool enable)

设置是否启用排序。

19)bool isSortingEnabled() const

返回是否启用排序。

20)void setAllColumnsShowFocus(bool enable)

设置是否显示焦点。

21)bool allColumnsShowFocus() const

返回是否显示焦点。

22)void setWordWrap(bool enable)

设置是否启用文字换行。

23)bool wordWrap() const

返回是否启用文字换行。

24)void setCornerButtonEnabled(bool enable)

设置是否启用角落按钮。

25)bool isCornerButtonEnabled() const

返回是否启用角落按钮。

26)void setUniformItemSizes(bool enable)

设置是否启用统一项目大小。

27)bool uniformItemSizes() const

返回是否启用统一项目大小。

28)void setGridSize(const QSize &size)

设置网格大小。

29)QSize gridSize() const

返回网格大小。

30)void setSpacing(int space)

设置间距。

31)int spacing() const

返回间距。

32)void setBatchSize(int size)

设置批量大小,用于优化大数据量的显示。

33)int batchSize() const

返回批量大小。

34)void clear()

清除所有数据和视图设置。

35)void reset()

恢复默认设置。

36)void sortByColumn(int column, Qt::SortOrder order = Qt::AscendingOrder)

根据指定列排序。

37)void ensureVisible(const QModelIndex &index, int role = Qt::NoRole)

确保指定索引在视图中可见。

38)QModelIndex indexAt(const QPoint &pos) const

返回指定位置的模型索引。

39)QRect visualRect(const QModelIndex &index) const

返回指定索引的视觉矩形。

40)void scrollTo(const QModelIndex &index, ScrollHint hint = EnsureVisible)

滚动到指定索引位置。

41)QModelIndex moveCursor(CursorAction cursorAction, Qt::KeyboardModifiers modifiers)

移动光标。

42)QModelIndex currentIndex() const

返回当前光标位置的模型索引。

43)void setCurrentIndex(const QModelIndex &index, QItemSelectionModel::SelectionFlags command = QItemSelectionModel::NoUpdate)

设置当前光标位置。

44)bool isIndexHidden(const QModelIndex &index) const

返回指定索引是否被隐藏。

45)void hideColumn(int column)

隐藏指定列。

46)void showColumn(int column)

显示指定列。

47)bool isColumnHidden(int column) const

返回指定列是否被隐藏。

48)void setColumnWidth(int column, int width)

设置指定列的宽度。

49)int columnWidth(int column) const

返回指定列的宽度。

50)void resizeColumnToContents(int column)

根据内容调整指定列的宽度。

使用例程

QListView的数据刷新需要用到QAbstractListModel、QStandardItemModel等

以下是一个使用QStandardItemModel刷新QListView数据的示例代码:

cpp 复制代码
#include <QApplication>  
#include <QListView>  
#include <QStandardItemModel>  
  
int main(int argc, char **argv)  
{  
    QApplication app(argc, argv);  
  
    // 创建模型  
    QStandardItemModel model;  
  
    // 添加数据到模型中  
    QStandardItem *item1 = new QStandardItem("Item 1");  
    QStandardItem *item2 = new QStandardItem("Item 2");  
    QStandardItem *item3 = new QStandardItem("Item 3");  
  
    model.appendRow(item1);  
    model.appendRow(item2);  
    model.appendRow(item3);  
  
    // 创建列表视图并设置模型  
    QListView listView;  
    listView.setModel(&model);  
    listView.show();  
  
    // 刷新数据  
    item1->setText("New Item 1");  
    item2->setText("New Item 2");  
    item3->setText("New Item 3");  
  
    // 更新视图  
    listView.setModel(&model);  
  
    return app.exec();  
}

在上面的示例中,我们首先创建了一个QStandardItemModel模型,并向其中添加了三个项目。然后,我们创建了一个QListView,并将其模型设置为之前创建的模型。接下来,我们更新了模型中的数据,并通过调用listView.setModel(&model)来刷新视图中的数据。

当模型的数据发生更改时,调用setModel()方法将重新建立视图与模型之间的连接,并刷新视图以反映最新的数据。

相关推荐
weixin_408717771 分钟前
HTML图片怎么用Bitbucket Pipelines发布_Bitbucket自动构建HTML站点
jvm·数据库·python
m0_747854523 分钟前
企业级SQL注入防护手段_使用专用的数据库安全网关
jvm·数据库·python
weixin_424999365 分钟前
Golang reflect反射怎么用_Golang反射教程【通俗】
jvm·数据库·python
2301_815279527 分钟前
mysql如何配置慢查询日志记录_开启long_query_time并分析
jvm·数据库·python
InfinteJustice7 分钟前
如何在 CGO 中正确处理带 const char- 参数的 C 回调函数
jvm·数据库·python
量子炒饭大师8 分钟前
【C++11】RAII 义体加装指南 ——【包装器 与 异常】C++11中什么是包装器?有哪些包装器?C++常见异常有哪些?(附带完整代码讲解)
开发语言·c++·c++11·异常·包装器
m0_493934539 分钟前
mysql如何使用HAVING过滤分组_mysql分组后的二次筛选
jvm·数据库·python
2301_7641505612 分钟前
如何在 Laravel Excel 导入时校验并阻止重复列值
jvm·数据库·python
telllong12 分钟前
Python异步编程从入门到不懵:asyncio实战踩坑指南
开发语言·python
知兀12 分钟前
【Result类】(使用/不使用<T> data的情况);自带静态方法、纯数据类;
java·开发语言