您的位置:首页 > 游戏 > 手游 > 陕西省私募基金协会_啊宝贝才几天没做网站_广告公司排名_谷歌seo搜索引擎

陕西省私募基金协会_啊宝贝才几天没做网站_广告公司排名_谷歌seo搜索引擎

2025/3/15 3:22:13 来源:https://blog.csdn.net/weixin_44232317/article/details/146165505  浏览:    关键词:陕西省私募基金协会_啊宝贝才几天没做网站_广告公司排名_谷歌seo搜索引擎
陕西省私募基金协会_啊宝贝才几天没做网站_广告公司排名_谷歌seo搜索引擎

目录

一、子类化委托

二、委托方法实现

1)createEditor

2)setEditorData

3)setModelData

4)updateEditorGeometry

三、委托使用

四、总结


        Qt的数据容器控件采用模型/视图(model/view)架构设计。模型用于存放控件的数据,视图则用于显示编辑数据,而委托则是用于实现自定义视图的一种方式。比如我们在QTableWidget表格控件中想要使用combox控件来编辑数据,就需要使用到委托功能。对于委托,通俗一点理解就是将需要实现的一些功能交由其他对象来承担。本文以QTableWidget控件为例,对Qt中委托的使用进行简要介绍。

一、子类化委托

         QT中常用的委托类有两个,分别是QItemDelegate和QStyledItemDelegate,官方建议优先使用QStyledItemDelegate。官方解释是它们之间的区别在于QStyledItemDelegate使用当前样式来绘制其项目。因此,建议在实现自定义委托或使用Qt样式表时使用QStyledItemDelegate作为基类,除非自定义委托需要使用绘图样式。一般情况下,我们就直接使用QStyledItemDelegate类。类的继承实现头文件如下。默认情况下,至少需要重写createEditor、setEditorData、setModelData、updateEditorGeometry这4个函数。

        类的头文件中定义了一个私有成员names,用于存放传递给QCombox控件的项目参数,并同时定义了一个公有函数,用于设置names的值。在规范的类定义中,一般不将类的成员变量或属性值设置为公有的,为了体现类的封装性,对类成员的赋值和取值都使用方法来实现。同时在最后还定义了一个信号haveSetSignal,用于返回需要往外传递的参数。

#ifndef CUSTOMSTYLEDITEMDELEGATE_H
#define CUSTOMSTYLEDITEMDELEGATE_H#include <QObject>
#include <QStyledItemDelegate>
#include <QComboBox>
#include <QCheckBox>
#include <QApplication>class CustomStyledItemDelegate:public QStyledItemDelegate
{Q_OBJECTprivate:QStringList names;
public:void setNames(QStringList);explicit  CustomStyledItemDelegate(QObject *parent = nullptr);QWidget *  createEditor( QWidget * parent, const QStyleOptionViewItem & option, const QModelIndex & index ) const override;void      setEditorData( QWidget * editor, const QModelIndex & index 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com