- 浏览: 250643 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (152)
- Qt (21)
- C++ (10)
- javascript (8)
- linux (8)
- RTC (1)
- JNI (1)
- Qt 图形 (1)
- Mac Bootcamp (1)
- node.js (3)
- Windows SDK 7.1 (1)
- VS2010 (2)
- linux Tcl 脚本语言 (0)
- Mac (1)
- Clucene VS2013 (1)
- VisualStudio (1)
- golang (11)
- postgresql (5)
- SVN (1)
- VS (2)
- 微信开发 (8)
- html5 (1)
- Win7 (1)
- Office (1)
- redis (1)
- Bootstrap (1)
- nginx (2)
- docker (1)
- xorm (3)
- blender (2)
- linux ec2 (1)
- aws (1)
- 七牛云 (1)
- css (5)
- h2 (1)
- react (2)
- java (2)
- html (2)
- eclipse (1)
- java swing (1)
- webpack (1)
- mysql (5)
- VS2017 (1)
- 网站 (1)
- tomcat spring (1)
- Ant (2)
- sql (1)
- 其它 (1)
- Win10 (1)
- R (1)
- git (1)
- Windows (1)
- ubuntu (2)
- python (3)
- win 11 (1)
- quasar (1)
最新评论
(本文系原创,转载请声明来自于:http://johnsmith9th.iteye.com)
1. 写一个树型数据结构
2. 从QAbstractItemModel派生一个类,这个类包含或引用上述树形数据结构。
3. 至少实现 index, parent, data, rowCount和columnCount这5个纯虚函数。index和parent函数其实就是从树形数据结构转换出合适的QModelIndex回答给Qt的框架,QModelIndex含有一个指针,可以指向树形数据结构的节点。
4. 根节点,也就是树上看不见的那个节点,必须对应一个非法的QModelIndex,所以你的树形数据结构的根节点从来不会有一个QModelIndex的internalPointer指向它,也永远不要用createIndex来包含你的树形数据结构的根节点,记住,和你的树形数据结构的根节点对应的QModelIndex是一个非法的QModelIndex。
5.index函数的含义就是给你一个父QModelIndex,请你回答一下这个父亲的第row个孩子的QModelIndex,当然这个QModelIndex要指向正确的第row个孩子,这里的row是本级的概念,不是全局的概念,传入的row不会超过父ModelIndex的孩子个数。所以这个函数的签名应该改成GetChildModelIndexAccordingToParentModelIndexBySpecifiedRowAndColumn().当然这个签名有点长,所以没有被采纳。
6.parent函数的含义就是给你一个孩子的ModelIndex,请你回答出它的父亲的ModelIndex.当然,由于ModelIndex携带行列信息,所以,为了得知父亲ModelIndex的行值,往往需要得到祖父,然后判断父亲属于祖父的哪个孩子。这个函数必须保证第4条得以遵循。
7.rowCount回答某个父ModelIndex包含了多少个孩子。
8.data函数需要加以重视,简单的情况下你只需要关心DisplayRole,根据传入ModelIndex的列值,取出你的树形数据结构里的节点的文本返回则可;而对于你不懂或不关心的角色一定要返回QVaraint(),否则你会发现什么都显示不出来。
9.最后把你的树形结构构建好,让QAbstractItemModel的派生类能够引用到它,并且将该model的实例用QTreeView的setModel方法设入就好了。
1. 写一个树型数据结构
2. 从QAbstractItemModel派生一个类,这个类包含或引用上述树形数据结构。
3. 至少实现 index, parent, data, rowCount和columnCount这5个纯虚函数。index和parent函数其实就是从树形数据结构转换出合适的QModelIndex回答给Qt的框架,QModelIndex含有一个指针,可以指向树形数据结构的节点。
4. 根节点,也就是树上看不见的那个节点,必须对应一个非法的QModelIndex,所以你的树形数据结构的根节点从来不会有一个QModelIndex的internalPointer指向它,也永远不要用createIndex来包含你的树形数据结构的根节点,记住,和你的树形数据结构的根节点对应的QModelIndex是一个非法的QModelIndex。
5.index函数的含义就是给你一个父QModelIndex,请你回答一下这个父亲的第row个孩子的QModelIndex,当然这个QModelIndex要指向正确的第row个孩子,这里的row是本级的概念,不是全局的概念,传入的row不会超过父ModelIndex的孩子个数。所以这个函数的签名应该改成GetChildModelIndexAccordingToParentModelIndexBySpecifiedRowAndColumn().当然这个签名有点长,所以没有被采纳。
6.parent函数的含义就是给你一个孩子的ModelIndex,请你回答出它的父亲的ModelIndex.当然,由于ModelIndex携带行列信息,所以,为了得知父亲ModelIndex的行值,往往需要得到祖父,然后判断父亲属于祖父的哪个孩子。这个函数必须保证第4条得以遵循。
7.rowCount回答某个父ModelIndex包含了多少个孩子。
8.data函数需要加以重视,简单的情况下你只需要关心DisplayRole,根据传入ModelIndex的列值,取出你的树形数据结构里的节点的文本返回则可;而对于你不懂或不关心的角色一定要返回QVaraint(),否则你会发现什么都显示不出来。
9.最后把你的树形结构构建好,让QAbstractItemModel的派生类能够引用到它,并且将该model的实例用QTreeView的setModel方法设入就好了。
发表评论
-
&QComboBox::currentIndexChanged无法用于connect
2022-07-20 15:25 221改为如下 QObject::connect(comboBo ... -
Qt无法进入槽函数( the slot function cannot entry for Qt)
2022-07-05 22:37 654如果connect没问题则需要检查一下信号发出者是否是在工 ... -
QtConcurrent::mappedReduced使用仿函数(functor)
2022-04-11 12:38 347参考https://stackoverflow.com/qu ... -
Qt open file report error "Broken filename passed to function"
2022-02-18 15:22 469原因: 文件名的最后多了一个\0会导致这个错误 -
QPainter在4K屏上绘制不清楚 (QPainter not clear in high DPI)
2021-12-31 10:23 682如果是先将内容绘制到一个图片缓存上的话,这个图片缓存需要放 ... -
Qt开发磁盘空间查看器
2021-09-09 10:30 0int main(int argc, char **argv ... -
QTableWidget的openPersistentEditor去掉高亮选择
2021-08-02 10:59 385如果用QTableWidget作为一个表格编辑控件的话,简单 ... -
qt安装包制作前的依赖文件收集
2019-05-16 14:29 555将***.exe文件copy到一个空的bin目录下,然后命令行 ... -
QListView实现流式布局和多列效果(flow layout and multiple columns)
2017-10-31 10:49 2347关键的三个调用: 1. setViewMode(QLis ... -
VS2010 如何调试进(step into)项目引用的第三方开源源代码,比如Qt源码
2015-01-07 09:06 1656在Solution上点击右键,选择"Properti ... -
Qt Creator配置vs2010编译器和调试器
2014-10-14 00:20 9521(本文系原创,转载请 ... -
QT间进程通信之共享内存
2014-07-18 11:28 0QT间进程通信之共享内存 Qt提供了一种安全的共享内存 ... -
Qt相关一个编译错误:'staticMetaObject' is not a member of ‘XXXClass’
2013-11-21 10:45 1245这个错误是怎么引起的呢?就是如果一个类不是从QObject及其 ... -
foreach的元素是QPair之类具有逗号的类型怎么办?
2013-05-30 19:41 1030如上所述: foreach(QPair<int,QStr ... -
qmake 提示"has modification time 1.9e+07 s in the future"
2013-04-07 10:49 1574qmake有个要求就是它的pro文件的修改时间必须早于系统时间 ... -
[转]Moc的三种用法
2013-02-26 17:46 1612(原文地址:https://code.google.com/p ... -
QGraphicsWidget的geometry和boundingRect是什么关系?
2012-12-25 17:08 1508QGraphicsWidget的boundingRect的概念 ... -
QWebPage的linkClicked无效?
2012-07-22 16:53 1147调用一下QWebPage实例的setLinkDelegatio ... -
Qt 插件编译可过但加载失败时提示undefined symbol
2011-12-30 11:23 1885查一下是不是需要moc的头文件没有加入工程文件,在pro里HE ... -
Qt 国际化翻译失败的一个原因
2011-12-24 21:57 1815(本文系原创,如需转载请标明来自http://johnsmit ...
相关推荐
QTreeView树形视图使用自定义模型model,不是改造QT例子。
详细介绍QTreeView的使用, 包括:模型/视图,自定义委托、自定义样式等操作 以及无边框界面的拖拽等操作!
QT中模型视图控制框架中QTreeView的应用代码,好包括QTableView的应用和代理的应用
QTreeView 使用Expand展开指定位置节点
具体介绍见: Qt树形控件QTreeView使用1——节点的添加删除操作: http://blog.csdn.net/czyt1988/article/details/18996407 Qt树形控件QTreeView使用2——复选框的设置: ...利用C++11的function和bind功能,实现...
介绍了QTreeView的用法以及模型-视图的相关操作
自绘QTreeView,添加QPushbutton,并用样式设置按钮,进行美化
此例子通过自定义Treemodel和treeitem实现了Qtreeview的节点可以拖动到另一节点下,可以用来实现数据分组等操作。
QTreeView与QStandardItemModel的使用,编译环境Qt4,MinGW
QTreeView详解
QTreeview树结构完美可自由拖拽节点模型,可带数据项拖动,子节点可同时拖动,测试无BUG,可自行添加自定义委托项
自定义的QTreeView+Model实现树节点内部之间拖拽效果,同时实现通过点击按钮的方式向QTreeView中添加节点。
本资源是一个完整的QTreeView增删改的小工具项目,下载只需修改数据库的连接地址即可运行,使用的数据库是mdb数据库(access),可以很好的用来学习QTreeView节点的增删改功能。
QTreeView递归实现展开或者闭合某个节点下面的所有子节点 不是一键展开所有,是展开你要操作的节点下面的所有子节点!
详情请查看https://blog.csdn.net/liuguangzhou123/article/details/90580672