QML与C++之间自定义对象输出

1.定义暴露的C++类 Message.h

#ifndef MESSAGE_H
#define MESSAGE_H#include "QObject"
#include "MessageAuthor.h"class Message : public QObject
{Q_OBJECTQ_PROPERTY(MessageAuthor* author READ author )public:explicit Message(QObject *parent = nullptr): QObject(parent){m_author = new MessageAuthor();}MessageAuthor* author() const {return m_author;}private:MessageAuthor* m_author;
};#endif // MESSAGE_H

2.定义自定义的属性对象类MessageAuthor

#ifndef MESSAGEAUTHOR_H
#define MESSAGEAUTHOR_H#include "QObject"class MessageAuthor : public QObject
{Q_OBJECTQ_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged)Q_PROPERTY(QString email READ email WRITE setEmail NOTIFY emailChanged )
public:explicit MessageAuthor(QObject *parent = nullptr): QObject(parent){}void setName(const QString &a) {if (a != m_name) {m_name = a;emit nameChanged();}}QString name() const {return m_name;}void setEmail(const QString &a) {if (a != m_email) {m_email = a;emit emailChanged();}}QString email() const {return m_email;}private:QString m_name;QString m_email;signals:void emailChanged();void nameChanged();
};#endif // MESSAGEAUTHOR_H

3.main.cpp中注册类型

#include "Message.h"  //引用头文件//在main函数代码中注册
qmlRegisterType<Message>("Message", 1, 0, "Message");

4.在main.qml文件中使用

import QtQuick 2.15
import QtQuick.Window 2.15
import Message 1.0
import QtQuick.Controls 2.15Window {width: 640height: 480visible: truetitle: qsTr("Hello World")Message{id:message}Button{id: button1text:"点击1"onClicked: {message.author.name = "zhangsan"message.author.email = "zhangsan.162.com"}}Button{id: button2text:"点击2"anchors.top: button1.bottomanchors.topMargin: 20onClicked: {message.author.name = "lisi"message.author.email = "lisi.162.com"}}Label{text: message.author.name + message.author.emailanchors.top: button2.bottomanchors.topMargin: 10}
}

5.运行结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/204425.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

跨境电商平台投资智谋:全球化布局的策略之道

随着全球数字化浪潮的涌动&#xff0c;跨境电商平台在全球商业舞台上扮演着越来越重要的角色。其全球化布局的策略之道成为业界瞩目的焦点。 本文将深入探讨跨境电商平台投资的智谋&#xff0c;分析其全球化布局的关键策略&#xff0c;以及在这个竞争激烈的领域中脱颖而出的成…

基于若依的ruoyi-nbcio流程管理系统支持支持定时边界事件和定时捕获事件

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码&#xff1a; https://gitee.com/nbacheng/ruoyi-nbcio 演示地址&#xff1a;RuoYi-Nbcio后台管理系统 1、定时边界事件 <template><div class"panel-tab__content"><!--目前只处理定…

BBS项目

一.BBS项目介绍 1.项目开发流程 项目立项 ------> 公司高层决定需求调研和分析 ------> 市场人员&#xff0c;技术人员参与 -需求文档说明开发部门开会 ------> 确定项目架构&#xff0c;技术选型&#xff0c;数据库设计UI&#xff0c;UD团队&#xff08;产品经…

计算机:人生道路上的良师益友

人生如同一座崎岖的山峰&#xff0c;我们不断地攀爬&#xff0c;寻找属于自己的道路。在这个过程中&#xff0c;计算机成为了我的得力助手&#xff0c;陪伴我走过无数的曲折与坎坷。 一、计算机&#xff1a;打开新世界的门户 我的人生道路上&#xff0c;计算机起到了至关重要…

【EI会议征稿-ACM出版】2023年信息化教育与人工智能国际学术会议(ICIEAI 2023)

2023年信息化教育与人工智能国际学术会议&#xff08;ICIEAI 2023&#xff09; 2023 International Conference on Information Education and Artificial Intelligence 2023年12月22-24日 中国-厦门 2023年信息化教育与人工智能国际学术会议&#xff08;ICIEAI 2023&#xf…

用23种设计模式打造一个cocos creator的游戏框架----(四)装饰器模式

1、模式标准 模式名称&#xff1a;装饰器模式 模式分类&#xff1a;结构型 模式意图&#xff1a;动态地给一个对象添加一些额外的职责。就增加功能来说&#xff0c;装饰器模式比生成子类更为灵活。 结构图&#xff1a; 适用于&#xff1a; 当需要给一个对象在运行时添加更…

Native Drawing 开发指导,实现 HarmonyOS 基本图形和字体的绘制

场景介绍 Native Drawing 模块提供了一系列的接口用于基本图形和字体的绘制。常见的应用场景举例&#xff1a; ● 2D 图形绘制。 ● 文本绘制。 接口说明 详细的接口说明请参考Drawing。 2D 图形绘制开发步骤 以下步骤描述了如何使用 Native Drawing 模块的画布画笔绘制一…

OpenCV交叉编译

1.下载代码解压 tar -zxvf opencv-4.8.1.tar.gz cd cd opencv-4.8.1 sudo mkdir chmod 777 build cd build 2.配置交叉编译工具 根据自己的板子进行修改 -D CMAKE_C_COMPILERaarch64-mix210-linux-gcc -D CMAKE_CXX_COMPILERaarch64-mix210-linux-g 3.cmake生成makefi…

Axure动态面板控制

首先创建一个项目&#xff0c;拖拽几个矩形喝一个动态面板 然后双击动态面板添加状态state1,state2,state3 然后分别在state1,state2,state3编辑导航对应的内容。 接下来就是添加交互事件&#xff0c;将不同导航对应不同的state. 点击“交互”->鼠标点击->进入交互编辑…

【android开发-19】android中内容提供者contentProvider用法讲解

1&#xff0c;内容URI 在Android系统中&#xff0c;Content URI是一种用于唯一标识和访问应用程序中的数据的方法。它由Android系统提供&#xff0c;通过Content Provider来实现数据的共享和访问。 Content URI使用特定的格式来标识数据&#xff0c;通常以"content://&qu…

大模型流行的原因以及大小模型在多任务场景的优劣对比

最近在了解大模型相关的概念&#xff0c;但有一些问题百思不得其解&#xff0c;所以写个博客记录下。 大模型流行的原因 提问&#xff1a;大模型为什么是近几年来的研究趋势&#xff1f;我个人工作以来&#xff0c;发现技术的迭代方向一直是“解耦”&#xff0c;尽量避免多个技…

Unity中Batching优化的动态合批

文章目录 前言一、动态合批的规则1、材质相同是合批的前提&#xff0c;但是如果是材质实例的话&#xff0c;则一样无法合批。2、支持不同网格的合批3、动态合批需要网格支持的顶点条件二、我们导入一个模型并且制作一个Shader&#xff0c;来测试动态合批1、我们选择模型的 Mesh…

【改进YOLOv8】融合Gold-YOLO的车辆未礼让行人检测系统

1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 研究背景与意义 随着交通工具的普及和道路交通量的增加&#xff0c;交通安全问题日益凸显。尤其是车辆未礼让行人的情况频繁发生&#xff0c;给行人的生命安全带来了严重威胁。因…

【Java】I/O流—File类:从0到1的全面解析

&#x1f38a;专栏【Java】 &#x1f33a;每日一句:看不清楚未来时,就比别人坚持久一点 ⭐欢迎并且感谢大家指出我的问题 目录 1.File概述 2.File构造方法 (1).根据文件路径创建文件对象 (2).根据父路径名字符串和子路径名字符串创建对象 (3).根据父路径对应文件对象和子路…

vue的props

类型&#xff1a;Array<string> | Object 详细&#xff1a; props 可以是数组或对象&#xff0c;用于接收来自父组件的数据。props 可以是简单的数组&#xff0c;或者使用对象作为替代&#xff0c;对象允许配置高级选项&#xff0c;如类型检测、自定义验证和设置默认值。…

【C语言】数据在内存中的存储

目录 练笔 整型数据的存储&#xff1a; char 型数据——最简单的整型 整型提升&#xff1a; 推广到其他整形&#xff1a; 大小端&#xff1a; 浮点型数据的存储&#xff1a; 存储格式&#xff1a; 本篇详细介绍 整型数据&#xff0c;浮点型数据 在计算机中是如何储存的。…

【玩转TableAgent 数据智能分析】-- 数据分析不再是专业人士的专利

文章目录 前言一、TableAgent介绍TableAgent 数据分析智能体融合创新应用的新成果Table Family 二、注册TableAgent访问TableAgent注册用量 三、 体验TableAgent样例数据集体验选择样例数据集样例数据集进行数据分析数据图 样例数据集进行数据分析规定图表格式数据图 自定义数据…

【java8新特性】

Java 8 是 Java 语言的一个重要版本&#xff0c;其中包含了许多新特性和改进。以下是 Java 8 中的一些重要特性&#xff1a; 流式 API&#xff1a;Java 8 引入了一个新的流式 API&#xff0c;可以用来处理集合、数组和字符串等数据流。这个 API 提供了一种简单的方式来遍历和操…

开源MES/免费MES/开源MES生产流程管理

一、什么是MES生产管理流程 生产管理系统&#xff08;又称制造执行系统&#xff09;是一种集成了计划、生产、质量控制、库存管理和材料申请等生产流程的管理系统。工厂生产管理流程是企业中实现高效生产的重要一环。 二、工厂生产管理流程的步骤 步骤一&#xff1a;计划和排…

生成测试数据的4种方法、5种工具介绍

在软件测试中&#xff0c;测试数据是测试用例的基础&#xff0c;对测试结果的准确性和全面性有着至关重要的影响。 因此&#xff0c;在进行软件测试时&#xff0c;需要生成测试数据以满足测试场景和要求。本文将介绍什么情况下需要生成测试数据&#xff0c;如何生成测试数据&a…