QDemo之QStandardItemModel

自定义树形模型

//treeView.h
//不要忘了包含这2个头文件:QStandardItem/QStandardItemModel
public:QStandardItemModel *getTreeModel(); 

//treeView.cpp
//获取树形模型
QStandardItemModel *TreeView::getTreeModel()
{
    QStandardItemModel *model = new QStandardItemModel(this);
    QStandardItem *rootItem = model->invisibleRootItem();

    //改变这里的n,明显可以感觉到加载是显示速度慢多了,大于W的的时候,下拉都非常容易卡死
    for(int i = 1, n = 9; i <= n; i++){

        //item可以设置图标、文本、表格属性
        QStandardItem *item = new QStandardItem(QString("节点 %0").arg(i));
        rootItem->appendRow(item);

        //不加这个,是1个root节点下,一个子节点,只有2级
        //加上这个,是1个root节点下,n个子节点,共1+n级
        rootItem = item;
    }
    return model;
}
时间: 2024-10-10 18:16:50

QDemo之QStandardItemModel的相关文章

QStandardItemModel简单好用,QTableView带进度条

类QabstractItemModel,QabstractListModel,QAbstractTableModel不保存数据,用户需要从这些类派生出子类,并在子类中定义某种数据结构来保存数据.与此不同,类QStandardItemModel负责保存数据,每个数据项被表示为类QStandardItem的对象.我们首先阐述如何使用类QStandardItem保存一个数据项,再阐述如何使用类QStandardItemModel将这些数据项组织起来,形成列表.表格或者树,以供其他视图类显示. 理论参考

QStandardItemModel角色控制及QTreeView加入不同的右键菜单

1.概述 QTreeView最长用的一个功能就是作为导航栏,像vs里的项目结构树,word的文档结构图,资源管理器的文档结构,等等都是利用树形结构组织的,在前面已经讲述了Qt中使用标准化项目模型QStandardItemModel对树形控件节点的操作.但有时候,光有节点显示还是不够的,还须要和用户进行交互,如右键点击不同条目会出现不同菜单,这时就须要知道各个节点相应的功能. 在MFC里,树形控件CTreeCtrl是通过SetItemData函数来对节点设置一个指针的值,这个值能够是个指针或者DW

QStandardItemModel角色控制及QTreeView添加不同的右键菜单

1.概述 QTreeView最长用的一个功能就是作为导航栏,像vs里的项目结构树,word的文档结构图,资源管理器的文档结构,等等都是利用树形结构组织的,在前面已经讲述了Qt中使用标准化项目模型QStandardItemModel对树形控件节点的操作.但有时候,光有节点显示还是不够的,还需要和用户进行交互,如右键点击不同条目会出现不同菜单,这时就需要知道各个节点对应的功能. 在MFC里,树形控件CTreeCtrl是通过SetItemData函数来对节点设置一个指针的值,这个值可以是个指针或者DW

QTableView与QStandardItemModel基本使用方法

对表格型数据,Qt有现成的模型/视图类,QStandardItemModel类和QTableView类. 模型类提供数据,视图类则负责展示数据.所以数据及数据的相关信息(如文本大小.颜色.数据类型等)由模型类(QStandardItemModel)管理,数据的显示(如表格是否可以编辑.选择方式.行列的大小策略等)由视图类(QTableView)管理. 所以Qt表格模型和视图的使用步骤大致如下: 1. 创建模型对象 1 QStandardItemModel *import_model = new

QStandardItemModel中设置项目的背景颜色

如何根据内容显示不同的背景颜色? 参照ECMWF的Metview源码实现. Qt的Model中不同类型的数据用role区分,Qt的宏ItemDataRole提供了一些角色: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 enum ItemDataRole { DisplayRole = 0, DecorationRole = 1, EditRole = 2, ToolT

QComboBox实现复选功能(三种方法:嵌套QListWidget, 设置QStandardItemModel, 设置Delegate)

今天介绍一下一个小东西 — 如何让QComboBox实现复选功能? 需求: 下拉列表有复选功能 不可编辑 显示所有选中项 关于QComboBox的复选功能有几种方案: QStandardItemModel + QStandardItem QListWidget + QListWidgetItem Model/View + QItemDelegate 当然,还有其它更好的方式,这里就不再过多介绍了,下面介绍一种比较简单的: QListWidget + QListWidgetItem + QChec

关于QStandardItemModel

类QabstractItemModel,QabstractListModel,QAbstractTableModel不保存数据,用户需要从这些类派生出子类,并在子类中定义某种数据结构来保存数据.与此不同,类QStandardItemModel负责保存数据,每个数据项被表示为类QStandardItem的对象.我们首先阐述如何使用类QStandardItem保存一个数据项,再阐述如何使用类QStandardItemModel将这些数据项组织起来,形成列表.表格或者树,以供其他视图类显示. 如前文所

QStandardItemModel

最近在阅读Qt 5.9 C++开发指南,为了加深对书本上内容的理解,参照书上的讲解尝试写了一些demo,用于以后工作中查阅,如果涉及侵权请告知,实例程序samp5_3 mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include <QTableView> #include <QPlainTextEdit> #include <QLabel> #in

QDemo - Analog clock模拟时钟学习并改进

调用函数setRenderHint(QPainter::Antialiasing,true),使绘制时边缘平滑,使用颜色浓度的变化,把图形的边缘转换为象素时引起的扭曲变形尽可能减少,在支持这一功能的平台或者绘图设备上得到一个平滑的边缘. QTimer类提供了定时器信号和单触发定时器. 它在内部使用定时器事件来提供更通用的定时器.QTimer很容易使用:创建一个QTimer,使用start()来开始并且把它的timeout()连接到适当的槽.当这段时间过去了,它将会发射timeout()信号. 我