模型\视图\委托(自定义代理)
文章平均质量分 71
模型\视图\委托(自定义代理)
云中飞鸿--**峰
这个作者很懒,什么都没留下…
展开
-
QTreeWidget\QTreeWidgetItem说明
它提供了丰富的功能和灵活的配置选项,用于自定义每个项目的外观和行为,并支持层次结构的管理和操作。QTreeWidget类是一个方便的类,它提供了一个带有经典基于项目的界面的标准树窗口部件,类似于Qt 3中QListView类使用的界面。以上是QTreeWidgetItem类的一些常用接口,通过使用这些接口,可以对树形控件的各个项进行数据操作、文本设置、图标设置、复选框状态设置、子项管理等操作。在QTreeWidget中,"顶级项"指的是树形控件中的最高层级的项,也就是树的根节点。转载 2024-08-14 11:31:21 · 70 阅读 · 0 评论 -
解引用QTreeWidget类型的迭代器指针,为什么会返回QTreeWidgetItem类型
方法来获取迭代器,这些迭代器指向的是QTreeWidget中的节点。通过解引用这些迭代器,我们可以访问到具体的QTreeWidgetItem对象,对其进行操作或获取其信息。这种设计使得我们可以方便地处理和操作QTreeWidget中的数据,无论是读取还是修改,都是基于QTreeWidgetItem对象进行的。因此,当我们解引用指向QTreeWidget的迭代器时,我们实际上是在访问QTreeWidget中的某个节点,这个节点的类型是QTreeWidgetItem。原创 2024-08-14 11:21:29 · 391 阅读 · 0 评论 -
简述MVC模式
一般来说,MVC模式就是通过Controller控制层监听用户的请求事件,通过访问Model数据层,对数据进行相应的增删改查操作,然后找到合适的View视图用相应的数据进行渲染生成最终的显示视图(可以是图形界面,html web页面,json,protobuff等等),然后再把视图返回给用户。C:指的是Controller,控制层,表示监听用户事件交互,分发处理事件模块。M:指的是Model,数据模型层,表示系统底层的数据操作模块。V:指的是View,视图显示层,表示系统对于数据的展示模块。原创 2024-05-28 09:13:13 · 504 阅读 · 0 评论 -
Model/View架构中:自定义Model
在很多模型中,返回的flags应该包括Qt::ItemIsEnabled和Qt::ItemIsSelectable,表示模型中的元素是可以被访问和选择的。重新实现这四个函数,因为列表只有1列。这个函数返回模型索引index的底层数据(一个模型索引包括某一元素的信息,包括行,列,以及数据),用于视图和委托访问数据。通常情况下,函数应该返回true如果操作成功,但是如果只是部分操作成功,例如只插入了部分行,则需要返回false。这个函数返回被给的模型索引下有多少行,返回的是parent的孩子数。原创 2024-05-24 17:34:29 · 685 阅读 · 0 评论 -
Model模型的:插入 和 删除
除所有偶数行,这将有可能使用beginRemoveRows和endRemoveRows达到150万次之多,1、要使模型能插入行/列和删除行/列,子类需要重新实现以下虚函数: insertRows();数),该函数会通知其他组件(比如视图或委托)行数将要发生变化,完成插入操作之后,还。2、下面以 insertRows()虚函数为例,讲解其规则(其余函数,原理类同)()函数(称其为 end 函数)以通知其他组件,该模型的行数已经更改,,比如若有一个有 300 百万行的模型,需要删。2.更新模型结构的内部数据。原创 2024-03-28 17:12:00 · 441 阅读 · 0 评论 -
QStandardItem数据项
(int column, int count) //删除从列 column 开始的 count 列(原理见下图)(int row, int column = 0) const //返回位置(row,column)处的子项目。() const //返回与该数据项关联的模型索引,若未与索引关联,则返回无效索引。() const //返回该项的父项,若没有父项(或顶级父项)则返回 0。(int column) //删除列 column 处的数据项。() const //返回该数据项包含的子项列的数量。原创 2024-01-17 17:01:39 · 1844 阅读 · 1 评论 -
模型Model:QStandardItemModel、QStandardItem
1.1 类QabstractItemModel,QabstractListModel,QAbstractTableModel不保存数据,用户需要从这些类派生出子类,并在子类中定义某种数据结构来保存数据。与此不同,类QStandardItemModel,每个数据项。QStandardItem用来保存一个数据项,再使用QStandardItemModel将这些数据项组织起来,形成列表、表格或者树,以供其他视图类显示。1.2 一个由若干个『』对组成。类QStandardItem负责保存、访问这些数据。原创 2024-01-17 14:03:10 · 2017 阅读 · 0 评论 -
模型Model:字符串列表模型QStringListModel
(1)功能:处理字符串列表的数据模型,可作为QListView的数据模型,在界面上显示和编辑字符串列表。以下函数为重新实现的 QAbstractItemModel 类中的相应函数(这些函数会使用到)。所有 parent 应是一个无效索引,若 parent 是一个有效索引,则该函数将返回 0。QAbstractItemModel 保持一致,默认为空索引,表示在模型的顶层插入行。插入或删除 count 行,参数 parent 是可选的,仅用于与。,要在列表最后插入一行,参数row设置为列表当前的行数即可。原创 2024-01-15 15:05:11 · 1134 阅读 · 0 评论 -
模型Model:文件系统模型QFileSystemModel
那么就会将这个模型索引d,传递给listView和tableView的槽函数setRootIndex(d)。QDir::AllEntries|QDir::NoDotAndDotDot | QDir::AllDirs,即列出目录、文件、驱动器、Clicked(QModelIndex)信号,会传递一个QModelIndex变量,是当前节点的 模型索引。从文件系统模型中移除模型索引 index,并删除对应的文件,若删除成功,则返回 true,注意:该函数并不会把目录放置于可以恢复的位置(比如回收站),而是直。原创 2024-01-15 11:17:35 · 1147 阅读 · 0 评论 -
模型索引:QModelIndex
在真正的MVC中,Data的实体是对用户隐藏的,用户只能通过Model来读写Data中的内容,也即只有模型才知道如何获取数据View是不知道,参见我的本系列前面的博文,这样的好处是用户不必关心Data在系统底层的组织方式。从名字可以看出,他是模型的索引,只要对模型实体(各种xxxModel的实体)施加这个索引,model就会返回数据集中对应的值,或者通过这个索引修改对应数据集中的值。上述代码中,只要看懂了如何访问根节点的儿子A的儿子B,也即如何访问根节点的孙子B,那就算掌握了QModelIndex的精髓。原创 2024-01-14 19:26:44 · 1567 阅读 · 0 评论 -
模型Model:SQL相关的Model
实现编辑、插入、删除 记录的操作。原创 2024-01-12 14:52:22 · 364 阅读 · 0 评论 -
模型Model:QAbstractItemModel
1、2、除了,都是从继承而来!3、4、视图自定义代理委托通过模型索引获取数据!原创 2024-01-12 14:51:44 · 437 阅读 · 0 评论 -
Qt模型视图框架:QDataWidgetMapper 数据映射
一、QDataWidgetMapper 可用于将模型数据映射到小部件。QDataWidgetMapper映射例1:界面组件(参数1) 与 tabModel数据模型的具体字段(参数2) 之间的联系;例2:将模型的列,映射到小部件通过将QDataWidgetMapper映射到项目模型的各个部分,QDataWidgetMapper可用于创建数据感知小部件。如果方向是水平的(默认),则区域是模型的一列,否则是一行。每当当前索引发生变化时,每个小部件都会通过映射时指定的属性使用模型中的数据进行更新。原创 2024-01-11 10:42:30 · 1199 阅读 · 0 评论 -
QTableView和QTableWidget之间的联系 和 区别?什么时候该用QTableView,什么时候该用QTableWidget?
总之,QTableView 适用于需要处理复杂、大型数据集和具有高度定制需求的表格应用,而 QTableWidget 更适用于简单的、快速创建的表格,特别是对于小型数据集和无需复杂数据模型的场景。你的选择将取决于项目的需求和复杂性。QTableView 通常更灵活和强大,适用于复杂的表格数据和需要高度定制的场景。但使用它需要编写更多的代码,包括自定义数据模型和委托(Delegate)来自定义表格外观和交互。QTableWidget 的自定义性相对有限,适合较简单的表格需求,但可能无法满足复杂的需求。原创 2024-01-09 13:59:56 · 3830 阅读 · 0 评论 -
模型\视图一般步骤:为什么经常要用“选择模型”QItemSelectionModel?
QSqlQueryModel、 QSqlTableModel、 QSqlRelationalTableModel:数据库相关模型;操作(当前项切换、当前行切换、选择行变化时=)要使用“选择模型”对象 发送信号)。因此,引入了“选择模型”!QStringListModel:存储QString项目的列表模型;QFileSystemModel:本地文件系统中的文件和目录模型;当既有“数据模型”,又有“选择模型”的时候。二、然而,正常情况下:“视图”都需要进行。模型(这里是数据模型!原创 2024-01-09 10:52:11 · 726 阅读 · 0 评论 -
自定义代理\委托 QAbstractItemDelegate
想要实现不同的委托,只要继承QStyledItemDelegate类,并实现相应的函数,就可以实现不同的委托。密码委托,下拉框委托(QComboBox),颜色选择委托,图标委托等等,甚至包括一些,你自己定义的控件的委托。:创建QDateEdit 编辑器、设置编辑器值、将编辑器中值保存的数据模型、设置编辑器位置;:创建QSpinBox 编辑器、设置编辑器值、将编辑器中值保存的数据模型、设置编辑器位置;2、委托:在QT的MV模型中,处理特定类型的数据(控制数据的。3.2 属性编辑器:创建自定义的属性编辑器;原创 2024-01-07 16:37:39 · 1157 阅读 · 0 评论