Qt使用自定义委托(QItemDelegate/QStyledItemDelegate)

简介: Qt使用自定义委托(QItemDelegate/QStyledItemDelegate)

委托(QItemDelegate/QStyledItemDelegate)的功能很强大,可以把控件设置成只读、表格的某一列设置成各种自己想要的控件。


Qt 提供了另外的基于组件的子类:QItemDelegate和 QStyledItemDelegate。默认的委托是 QStyledItemDelegate。二者的区别在于绘制和向视图提供编辑器的方式。QStyledItemDelegate使用当前样式绘制,并且能够使用 Qt Style Sheet,因此我们推荐在自定义委托时,使用 QStyledItemDelegate作为基类。不过,除非自定义委托需要自己进行绘制,否则,二者的代码其实是一样的。


继承 QStyledItemDelegate需要实现以下几个函数:


createEditor():返回一个组件。该组件会被作为用户编辑数据时所使用的编辑器,从模型中接受数据,返回用户修改的数据。(//创建你编辑时候的控件)


setEditorData():提供上述组件在显示时所需要的默认值。(//编辑的时候设置数据到上面创建的editor中)


updateEditorGeometry():确保上述组件作为编辑器时能够完整地显示出来。(//设置编辑控件的位置和大小。样式等)


setModelData():返回给模型用户修改过的数据。(//编辑完成,保存数据到data中)



官方例程:


\Qt5.12.9\Examples\Qt-5.12.9\widgets\itemviews


重点关注:


\Qt5.12.9\Examples\Qt-5.12.9\widgets\itemviews\spinboxdelegate



Qt豆子教程:


Qt学习之路(45): 自定义model之一


Qt学习之路(47): 自定义Model之三


Qt 学习之路 2(47):视图选择





QTreeView使用总结


https://blog.csdn.net/dpsying/category_9274382.html


http://www.qtcn.org/bbs/read-htm-tid-66006.html


 


相关文章
|
6月前
|
存储 机器学习/深度学习 人工智能
Qt魔法书:打造自定义鼠标键盘脚本(二)
Qt魔法书:打造自定义鼠标键盘脚本
217 0
|
1月前
(8)Qt中的自定义信号
本文介绍了如何在Qt框架中创建和使用自定义信号,并通过一个父子窗口切换的示例来展示自定义信号的实现和应用。
77 3
(8)Qt中的自定义信号
|
1月前
(7)Qt中的自定义槽(函数)
这篇文章介绍了在Qt中如何定义和使用自定义槽函数,包括类成员函数、静态类成员函数、全局函数和lambda表达式作为槽函数的示例,以及使用lambda表达式时的注意事项。
44 2
(7)Qt中的自定义槽(函数)
|
3月前
|
搜索推荐 C++
【Qt 学习笔记】Qt窗口 | 对话框 | 创建自定义对话框
【Qt 学习笔记】Qt窗口 | 对话框 | 创建自定义对话框
73 4
|
3月前
【qt】自定义对话框(2)
【qt】自定义对话框(2)
25 0
|
3月前
【qt】自定义对话框(1)
【qt】自定义对话框(1)
33 0
|
4月前
|
C++
Qt中的信号与槽如何学习?(包括自定义信号)这篇文章告诉你
以现实中的事件来举例的话,例如有两把不同颜色的信号枪,分别是红色,绿色,打响不通颜色的信号枪会触发不同的槽发生,比如说打响红色这个人就跑步,绿色就走步,但是还有一个很重要的机制,那就是连接,我们需要把信号枪去跟这个人的动作连接起来。 如果上面理解没问题的话我们可以把信号和槽看成两个工具,我们最重要的是如何去把这两个工具连接起来。 它的作用可以让我们更加灵活的去使用不同窗口间的切换以及某些事件的连接。
100 0
|
5月前
|
XML JSON 前端开发
Qt委托代理机制之《Model/View/Delegate使用方法》
Qt委托代理机制之《Model/View/Delegate使用方法》
465 1
|
6月前
|
C++
【qt】自定义代理类
【qt】自定义代理类
60 0
|
6月前
|
搜索推荐
【qt】自定义界面类
【qt】自定义界面类
57 0

推荐镜像

更多
下一篇
无影云桌面