美文网首页my-QT专栏
QT QVariant支持结构体的方法

QT QVariant支持结构体的方法

作者: c之气三段 | 来源:发表于2021-09-11 16:14 被阅读0次

类似与自定义类型容器

struct DirectionalLight
{
    float ambientFactor;
    float diffuseFactor;
    float specularFactor;
    QVector3D position;
    QVector3D color;
};
Q_DECLARE_METATYPE(DirectionalLight)//告诉qt支持结构体

填充数据

   QList<QVariant> m_lightings;
   DirectionalLight dirLight;
   dirLight.ambientFactor = 0.2f;
   dirLight.diffuseFactor = 1.0f;
   dirLight.specularFactor = 0.5f;
   dirLight.color = QVector3D(1.0,1.0,1.0);
   dirLight.position = QVector3D(50.0,10.0,0.0);
   m_lightings.append(QVariant::fromValue(dirLight));//要使用这种方式初始化数据

获取数据

       foreach (QVariant var, m_lightings) {
           if(var.canConvert<DirectionalLight>())
           {
               DirectionalLight dirLight = var.value<DirectionalLight>();
               m_pShaderProgram->setUniformValue("dirLight.ambientFactor",dirLight.ambientFactor);
               m_pShaderProgram->setUniformValue("dirLight.diffuseFactor",dirLight.diffuseFactor);
               m_pShaderProgram->setUniformValue("dirLight.specularFactor",dirLight.specularFactor);
               m_pShaderProgram->setUniformValue("dirLight.color",dirLight.color);
               m_pShaderProgram->setUniformValue("dirLight.position",dirLight.position);
           }
       }

这样就能一个数组装多种结构体了

相关文章

  • QT QVariant支持结构体的方法

    类似与自定义类型容器 填充数据 获取数据 这样就能一个数组装多种结构体了

  • Swift基础语法-结构体,构造函数,(系统结构体)扩充函数,值

    知识点 基本概念 结构体的基本使用 结构体构造器(构造函数/构造方法) 结构体扩充函数(方法), 又称成员方法 结...

  • 结构体

    结构体的介绍 格式 结构体的使用 结构体定义构造方法 注意点 例子 注意点

  • QVariant

    在工作中经常用到QVariant类,Qt提供的这个类,你可以把很多类型都存放进去。在公司中最常见的就是下图的用法1...

  • Linux字符设备注册

    结构体原型 结构体空间开辟 结构体空间初始化 操作方法集的结构体 机构体注册 字符设备移除 实例

  • Swift中结构体的方法调度&内存分区

    函数方法调度 结构体的方法调度 如下结构体 在汇编模式下,可知结构体的函数调用方式是静态调用(直接调用): 通过在...

  • Note 7 类和结构体

    结构体 类 定义 类的属性 成员变量 静态变量 成员方法 类方法 与结构体的区别 用let定义的结构体变量,成员不...

  • 结构体嵌套

    普通结构体嵌套 普通结构体嵌套,嵌套结构体可以通过 .子变量.方法 的方式获取被嵌套的属性和方法 匿名嵌套 匿名嵌...

  • note for swift 3.0

    在此处输入标题 标签(空格分隔): 未分类 1.类和结构体• swift支持直接设置结构体中的子属性• 所有结构体...

  • C中将结构体写入文件及读取

    需要导入的头文件 写入结构体 假设有结构体: 结构体写入文件的方法: 读取文件中的结构体 知识扩展 函数fopen...

网友评论

    本文标题:QT QVariant支持结构体的方法

    本文链接:https://www.haomeiwen.com/subject/afkawltx.html