当前位置: 首页 > news >正文

QT中委托QStyledItemDelegate的使用

目录

一、子类化委托

二、委托方法实现

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_OBJECT

private:
    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 

相关文章:

  • 6-langchang多模态输入和自定义输出
  • Apache POI详解
  • 保安员考试:巧用记忆术,攻克理论知识堡垒
  • 目标检测YOLO实战应用案例100讲-基于毫米波雷达的多目标检测 (续)
  • protobuf, rpc, 火焰图
  • 大语言模型 (LLM) 基础知识
  • 介绍如何开发一个小样本增量学习程序
  • 国产LIMS系统深度横评 实验室数字化转型最优解
  • Linux之kernel(1)系统基础理论(6)
  • C++ 使用红黑树的实现及迭代器完成对set和map的封装
  • 2025年Draw.io最新版本下载安装教程,附详细图文
  • asm磁盘组扩容加错磁盘
  • 脑电波控制设备:基于典型相关分析(CCA)的脑机接口频率精准解码方法
  • Tomcat下载安装及日志乱码问题解决
  • DeepSeek-专家并行(二)
  • Spring Boot+RabbitMQ+Canal 解决数据一致性
  • 【算法学习计划】动态规划 -- 路径问题
  • 1433抓鸡工具_1433抓鸡工具在软件安全测试中的重要性及应用
  • Mysql主从复制和Mysql高可用以及负载均衡配置
  • 项目管理起源是什么
  • 马上评|比起奇葩论文,更可怕的是“水刊”灰产
  • 景点变回监狱,特朗普下令重新启用“恶魔岛”
  • “五一”假期预计全社会跨区域人员流动量累计14.67亿人次
  • 国际观察丨澳大利亚新一届政府面临系列挑战
  • 当Z世代与传统戏曲在春日校园相遇
  • 巴菲特批评贸易保护主义:贸易不该被当成武器来使用