QTreeView 使用 QStandardItemModel】的更多相关文章

QTreeView 使用 QStandardItemModel @ 目录 QTreeView 使用 QStandardItemModel 前言 一.直接上图 二.添加同级结点项 1.思路 2.实现 二.添加子结点项 1. 思路 2. 实现 三.结点项上移 1. 思路 2.实现 四.结点项下移 1. 思路 2.代码 五.结点升级 1. 思路 2.代码 五.结点降级 1. 思路 2.代码 五.删除结点 1. 思路 2.代码 总结 前言 Qt 模型视图的讲解到处都是,就不废话了.直接说QTreeVie…
[本文转自]http://blog.sina.com.cn/s/blog_a6fb6cc90101hh20.html   作者: 一去丶二三里 关于Qt中MVC的介绍与使用,助手中有一节模型/视图编程(Model/View Programming)讲解的很清晰.     Qt包含一组使用模型/视图结构的类,可以用来管理数据并呈现给用户.这种体系结构引入的分离使开发人员更灵活地定制项目,并且提供了一个标准模型的接口,以允许广泛范围的数据源被使用到到现有的视图中.     模型 - 视图 - 控制器…
任务1:显示如图的树形结构 思考: 1.使用QTreeView显示. 2.Model使用QStandardItemModel,qt的一个标准model. 3.QStandardItemModel下每一个单元都可以看作QStandardItem. 4.QStandardItemModel中invisibleRootItem()函数返回一个看不到的根. 5.在这个根上添加行. 代码如下: mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #…
Qt包含一组使用模型/视图结构的类,可以用来管理数据并呈现给用户.这种体系结构引入的分离使开发人员更灵活地定制项目,并且提供了一个标准模型的接口,以允许广泛范围的数据源被使用到到现有的视图中. 模型 - 视图 - 控制器(MVC)是一种设计模式,由三类对象组成:模型:应用程序对象.视图:屏幕演示.控制器:定义了用户界面响应用户输入的方式. 在引入MVC之前,用户界面的设计往往是将这些对象组合在一起.MVC的解耦带来了灵活性和重用性. 如果视图和控制器对象相结合,其结果是模型/视图结构,仍然分离了…
一.使用QTreeWidget 头文件: /************************************************************************ 树的搜索类(QTreeWidget版) 使用方法: 调用函数TreeSearch::SearchItem(para1, para2); 第一个参数是要搜索的树QTreeWidget或它的子类 第二个参数是搜索输入的关键字 ********************************************…
在上一篇博文<C/C++ Qt TreeWidget 单层树形组件应用>中给大家演示了如何使用TreeWidget组件创建单层树形结构,并给这个树形组件增加了右键菜单功能,接下来将继续延申树形组件的使用,并实现对树形框多节点的各种操作. 常用树形框节点间的操作方法如下: 节点遍历 初始化节点 单击双击节点 添加根节点 添加子节点 修改选中节点 删除选中节点 枚举全部节点 枚举选中节点 获取节点子节点 简单的节点遍历: 首先我们还是使用TreeView组件实现一个简单的多层嵌套树结构,代码运行后…
1.概述 QTreeView最长用的一个功能就是作为导航栏,像vs里的项目结构树,word的文档结构图,资源管理器的文档结构,等等都是利用树形结构组织的,在前面已经讲述了Qt中使用标准化项目模型QStandardItemModel对树形控件节点的操作.但有时候,光有节点显示还是不够的,还须要和用户进行交互,如右键点击不同条目会出现不同菜单,这时就须要知道各个节点相应的功能. 在MFC里,树形控件CTreeCtrl是通过SetItemData函数来对节点设置一个指针的值,这个值能够是个指针或者DW…
http://blog.csdn.net/czyt1988/article/details/26018513…
QtreeView是ui中最常用的控件,Qt中QTreeWidget比QTreeView更简单,但没有QTreeView那么灵活(QTreeWidget封装的和MFC的CTreeCtrl很类似,没有mvc的特点). 1. QStandardItemModel在QTreeView中的使用 使用QTreeView的对应模型是QStandardItemModel,这个是Qt对应ui界面最有用的模型,它可以用于树形控件.列表控件.表格控件等等和条目有关的控件.QStandardItemModel用于列表…
类QabstractItemModel,QabstractListModel,QAbstractTableModel不保存数据,用户需要从这些类派生出子类,并在子类中定义某种数据结构来保存数据.与此不同,类QStandardItemModel负责保存数据,每个数据项被表示为类QStandardItem的对象.我们首先阐述如何使用类QStandardItem保存一个数据项,再阐述如何使用类QStandardItemModel将这些数据项组织起来,形成列表.表格或者树,以供其他视图类显示. 如前文所…
转载:落叶知秋时 类QabstractItemModel,QabstractListModel,QAbstractTableModel不保存数据,用户需要从这些类派生出子类,并在子类中定义某种数据结构来保存数据. 与此不同,类QStandardItemModel负责保存数据,每个数据项被表示为类QStandardItem的对象.接下来,我们主要从两个方面介绍类QStandardItemMode的内容. 首先阐述如何使用类QStandardItem保存一个数据项, 再阐述如何使用类QStandar…
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.PyQt中的标准模型 PyQt和Qt提供了两个标准模型QStandardItemModel和QFileSystemModel.QStandardItemModel是一个多用途模型,可用于表示列表list.表table和树tree类型视图所需的各种不同数据结构,模型可以保存数据项.QFileSystemModel是一个维护文件目录内容信息的模型,它本身不包含任何数据项,而只是表示本地文件系统上的…
老猿Python博文目录 老猿Python博客地址 一.概述 QStandardItemModel是QAbstractItemModel的派生类,用于在Model/View架构中存储自定义数据的通用模型,可以用于在任何支持QAbstractItemModel接口的view(例如QListView.QTableView和QTreeView,以及自定义视图)中作为数据存储. QStandardItemModel可以用作标准Qt数据类型的数据存储Model.QStandardItemModel提供了一…
类QabstractItemModel,QabstractListModel,QAbstractTableModel不保存数据,用户需要从这些类派生出子类,并在子类中定义某种数据结构来保存数据.与此不同,类QStandardItemModel负责保存数据,每个数据项被表示为类QStandardItem的对象.我们首先阐述如何使用类QStandardItem保存一个数据项,再阐述如何使用类QStandardItemModel将这些数据项组织起来,形成列表.表格或者树,以供其他视图类显示. 理论参考…
QTreeView比较复杂,在这里记下所有用到的操作: ----------------------------------------------------------------------------- 如何给QTreeView的节点显示图标要显示节点图标,就在重写模型的时候在DecorationRole角色时返回要显示的图标就可以了 Node *node = nodeFromIndex(index); if (role == Qt::DecorationRole){ switch(no…
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); model = new QFileSystemModel; //model->setRootPath("/"); model->setRootPath("d:\\"); listView = new QTreeView; listView…
很久之前写过一篇关于QTreeView快速显示超过千万条数据项的方法,如果说那篇文章讲的是QTreeView的内功的话,今天这篇是讲QTreeView的外功,有时我们想改变视图的数据项的行高,那怎么办呢?今天在这里介绍两种改变行高的方法: 1.通过更改QTreeView的默认delegate的方法 class CDelegate : public QStyledItemDelegate { Q_OBJECT public: CDelegate(QObject *parent) : QStyled…
如何使QTreeView快速显示1000万条数据,并且内存占用量少呢?这个问题困扰我很久,在网上找了好多相关资料,都没有找到合理的解决方案,今天在这里把我的解决方案提供给朋友们,供大家相互学习. 我开始使用的QTreeWidget 控件来显示我的数据,发现该控件在显示10000行以下的数据还可以应付的过来,但超过10000条,就明显感觉到屏幕刷新就会有卡的现象,而且占据内存很大,虽然操作起来简单方便,但灵活性没有QTreeView强大.因为我要显示的数据量是非常大的,甚至过1000万,因此,采用…
The QStandardItemModel class provides a generic model for storing custom data. QStandardItemModel提供了一个来存储数据的一般类型. 首先我们在ui上新建一个TabelView 新建一个QStandardItemModel的对象 this->myModel = new QStandardItemModel(this); 然后在TableView设置Model ui->tableView->set…
QTreeView 限制特定的深度.特定深度下的列 是否可以编辑 # # C_TreeView # 在QTreeView基础上增加限制特定深度.特定列是否可以编辑 # class C_TreeView(QTreeView): def __init__(self, parent=None): QTreeView.__init__(self, parent) # 设置可以编辑的 深度 和 列 # dict, depth:int,column:list self.c_allow_edit = dict…
隐藏左侧的小箭头…
https://www.techieliang.com/2017/12/729/ 原文地址 using_checkbox_item.h /** * @file using_checkbox_item.h * @brief 本文件包含支持复选框item类声明. * @version 1.0.0.0 * @date 2017.12.18 * @author Techie亮 */ #ifndef _H_USINGCHECKBOXITEM_ #define _H_USINGCHECKBOXITEM_ #…
版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:Qt-QTreeview/QTableView排序问题     本文地址:http://techieliang.com/2017/11/66/ QTreeview/QTableView自带排序功能 Qt可通过sortByColumn()实现对QTreeview/QTableView某列的排序 也可通过setSortingEnabled()实现允许用户点击表头进行排序 排序默认是对item的内…
QString("%1").arg(g_PrjMg.m_Param.stRunParaSet.wWDTTimer) ///站号参数 model = new QStandardItemModel(ui->tableView_Tab8); model->setColumnCount(3); model->setHeaderData(0, Qt::Horizontal, "站号"); model->setHeaderData(1, Qt::Hori…
版权声明:本文为博主原创文章,欢迎转载,转载请注明出处 https://blog.csdn.net/MatchYang/article/details/52988257 在直接使用QStandardItemModel存取数据时,必须考虑线程安全问题 以下是使用场景:   QListView用于显示图片缩略图,而整个view有一万以上的缩略图,也就是说item项在一万以上 在大量的数据插入过程中,void QStandardItemModel::appendRow(QStandardItem *i…
今天介绍一下一个小东西 — 如何让QComboBox实现复选功能?   需求: 下拉列表有复选功能 不可编辑 显示所有选中项   关于QComboBox的复选功能有几种方案: QStandardItemModel + QStandardItem QListWidget + QListWidgetItem Model/View + QItemDelegate 当然,还有其它更好的方式,这里就不再过多介绍了,下面介绍一种比较简单的: QListWidget + QListWidgetItem + Q…
C++ QT5学习--QTreeView控件创建右键菜单 QTreeView是QWidget的子类,我们再改写QTreeView类的时候,注意的是继承关系. 1.TreeView.h class TreeView : public QTreeView//记得加public 不然是私有继承 { Q_OBJECT //使用信号与槽所必需的 public: TreeView(); public slots: void slotCustomContextMenu(const QPoint &point)…
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概述 在前面<第十九章.Model/View开发:QTableView的功能及属性>介绍了QTableView的主要功能及属性,本节来使用QTableView与QStandardItemModel配套来开发一个简单的Excel文件展示程序.之所以使用QStandardItemModel,这是因为在Model/View架构中,PyQt和Qt提供的已经可以直接使用的model模型类中,QStan…
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 QStandardItemModel通过构造方法 QStandardItemModel(int rows, int columns, QObject parent = None)创建的模型实例,包含有rows行columns列的空项.这些项不但没有数据,而且通过模型的item(row, col) 方法返回的项为None.具体分析请见<PyQt(Python+Qt)学习随笔:QStandardIte…
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.引言 QStandardItemModel有两种构造方法: QStandardItemModel(QObject parent = None):直接创建一个模型实例,数据未进行初始化,可以通过setItem将QStandardItem的实例对象添加到模型中作为项. QStandardItemModel(int rows, int columns, QObject parent = None):…