- 浏览: 265082 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (153)
- 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 (12)
- 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)
- github (0)
最新评论
(本文系原创,转载请声明来自于: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 337改为如下 QObject::connect(comboBo ... -
Qt无法进入槽函数( the slot function cannot entry for Qt)
2022-07-05 22:37 926如果connect没问题则需要检查一下信号发出者是否是在工 ... -
QtConcurrent::mappedReduced使用仿函数(functor)
2022-04-11 12:38 479参考https://stackoverflow.com/qu ... -
Qt open file report error "Broken filename passed to function"
2022-02-18 15:22 573原因: 文件名的最后多了一个\0会导致这个错误 -
QPainter在4K屏上绘制不清楚 (QPainter not clear in high DPI)
2021-12-31 10:23 888如果是先将内容绘制到一个图片缓存上的话,这个图片缓存需要放 ... -
Qt开发磁盘空间查看器
2021-09-09 10:30 0int main(int argc, char **argv ... -
QTableWidget的openPersistentEditor去掉高亮选择
2021-08-02 10:59 551如果用QTableWidget作为一个表格编辑控件的话,简单 ... -
qt安装包制作前的依赖文件收集
2019-05-16 14:29 625将***.exe文件copy到一个空的bin目录下,然后命令行 ... -
QListView实现流式布局和多列效果(flow layout and multiple columns)
2017-10-31 10:49 2528关键的三个调用: 1. setViewMode(QLis ... -
VS2010 如何调试进(step into)项目引用的第三方开源源代码,比如Qt源码
2015-01-07 09:06 1710在Solution上点击右键,选择"Properti ... -
Qt Creator配置vs2010编译器和调试器
2014-10-14 00:20 9579(本文系原创,转载请 ... -
QT间进程通信之共享内存
2014-07-18 11:28 0QT间进程通信之共享内存 Qt提供了一种安全的共享内存 ... -
Qt相关一个编译错误:'staticMetaObject' is not a member of ‘XXXClass’
2013-11-21 10:45 1323这个错误是怎么引起的呢?就是如果一个类不是从QObject及其 ... -
foreach的元素是QPair之类具有逗号的类型怎么办?
2013-05-30 19:41 1083如上所述: foreach(QPair<int,QStr ... -
qmake 提示"has modification time 1.9e+07 s in the future"
2013-04-07 10:49 1745qmake有个要求就是它的pro文件的修改时间必须早于系统时间 ... -
[转]Moc的三种用法
2013-02-26 17:46 1703(原文地址:https://code.google.com/p ... -
QGraphicsWidget的geometry和boundingRect是什么关系?
2012-12-25 17:08 1554QGraphicsWidget的boundingRect的概念 ... -
QWebPage的linkClicked无效?
2012-07-22 16:53 1207调用一下QWebPage实例的setLinkDelegatio ... -
Qt 插件编译可过但加载失败时提示undefined symbol
2011-12-30 11:23 2018查一下是不是需要moc的头文件没有加入工程文件,在pro里HE ... -
Qt 国际化翻译失败的一个原因
2011-12-24 21:57 1915(本文系原创,如需转载请标明来自http://johnsmit ...
相关推荐
本教程将深入讲解如何在`QTreeView`中使用自定义模型,以满足特定的数据展示和操作需求。 首先,`QTreeView`依赖于`QAbstractItemModel`或其子类来获取和管理数据。`QAbstractItemModel`是Qt提供的一种抽象接口,它...
数据由Model提供,Model是Qt的模型-视图-控制器(MVC)架构中的核心组件,负责存储和管理数据。因此,自定义Model可以让我们根据需求定制数据的结构和操作。 1. **创建自定义Model** - 派生自QAbstractItemModel:...
在本篇文章中,我们将深入探讨如何利用QTreeView来构建高效且可定制化的用户界面,特别是关注模型/视图架构、自定义委托、自定义样式以及实现无边框界面的拖放功能。 首先,理解**模型/视图架构**至关重要。在Qt中...
QTreeview是基于模型视图架构的,这意味着数据存储在模型(如QStandardItemModel或QFileSystemModel)中,而QTreeview只是一个用来展示这些数据的视图。因此,我们的搜索功能实际上是在模型上进行操作,然后更新视图...
QTreeView是Qt库中的一个重要组件,它用于展示数据模型的树形结构。在Qt的图形用户界面(GUI)编程中,QTreeView常被用来构建可交互的目录浏览、文件系统查看器或者层级关系的显示。这个组件允许用户通过拖动、折叠/...
`QAbstractItemModel`是Qt模型视图体系中的抽象基类,负责存储和管理数据,而`QTreeView`则负责展示这些数据。当你想要展开或折叠某个节点时,通常需要与`QAbstractItemModel`交互。 要展开指定位置的节点,你需要...
在Qt框架中,QTreeView是一种用于显示模型数据的视图组件,它通常用来展示复杂的层次结构数据,如文件系统、数据库记录等。本教程将详细讲解如何自定义QTreeView,添加QPushButton并进行美化。 首先,自绘QTreeView...
在Qt库中,QTreeView是模型视图框架的一部分,它用于显示树状数据结构,例如文件系统、组织结构等。QTableView则用于显示表格数据,适用于数据库或表格型数据的操作。代理(QItemDelegate)是Qt中的一个重要概念,...
在Qt的模型-视图框架中,`QTreeView`作为视图(View)部分,可以与各种模型(Model)配合,如`QStandardItemModel`、`QFileSystemModel`或自定义模型,来显示和操作数据。 **一、QTreeView的基本使用** 1. **创建...
在Qt框架中,`QTreeView`是一个非常重要的组件,它用于显示由模型(如`QAbstractItemModel`)提供的树型结构数据。本示例"QTreeView实现节点拖动.zip"着重展示了如何扩展`QTreeView`的功能,使其支持节点的拖放操作...
在Qt框架中,QTreeView和QStandardItemModel是用于构建数据视图的重要组件,它们是模型-视图-控制器(MVC)设计模式的一部分。在这个环境中,QTreeView是视图组件,而QStandardItemModel是模型组件,负责存储和管理...
在Qt框架中,`QTreeView`是一个非常重要的组件,它用于显示基于模型的数据结构,通常以树状的形式呈现。在实际应用中,我们可能需要实现更丰富的交互功能,比如节点之间的拖放操作。本示例"QTreeView实现树节点之间...
对于大数据量的模型,应该注意性能优化,例如延迟加载或分页加载,避免一次性加载所有数据导致性能下降。 在QtWeight项目中,你可以找到上述功能的具体实现。通过阅读代码,可以更深入理解QTreeView与...
在Qt库中,`QTreeView`是一个非常重要的组件,它用于显示和操作基于模型的数据结构。这个组件允许用户以树状视图的方式查看数据,通常用于文件系统、组织结构或其他层次化信息的展示。在本资源中,我们将深入探讨...
首先,QTreeView控件是Qt的模型/视图架构的一部分,它依赖于QAbstractItemModel来提供数据。QAbstractItemModel提供了数据的存储和管理,而QTreeView则负责展示这些数据。在这个小工具中,开发者可能自定义了一个...
模型-视图-控制器(MVC)设计模式在Qt中被广泛应用,QTreeView作为视图,负责显示模型中的数据。 要创建一个基本的QTreeView,你需要以下步骤: 1. **创建模型**:首先,你需要创建一个模型来存储数据。通常,你...
`QTreeView`是基于`QAbstractItemView`的,这意味着它可以使用各种类型的模型,如`QStandardItemModel`或自定义的数据模型。在`Qt Creator`中,我们可以轻松创建和运行`QTreeView`的示例,以便直观地了解其功能和...
`QTreeView`通常与`QAbstractItemModel`或其子类(如`QStandardItemModel`)一起使用,通过模型-视图-控制器(MVC)模式来处理数据。然而,对于大数据量的场景,使用Qt自带的模型可能性能不足,这时我们需要自定义`...
QTreeView是Qt Widgets模块的一部分,它通常与QAbstractItemModel或QStandardItemModel一起使用,可以展示表格或树状数据模型。这个组件允许用户通过层次结构查看和交互数据,比如文件系统、组织结构或自定义数据...
在Qt框架中,`QTreeView`是一个非常重要的组件,它用于显示和操作数据模型的层次结构。本教程将深入探讨如何实现一个自定义的`QTreeView`,通过重写`QAbstractItemModel`来添加按钮功能,使得每个树节点都可以关联一...