QT QML 与C++ 混合编程

本文详细介绍了如何在QT中进行QML与C++的混合编程,包括QML的基本概念,QML访问C++的两种方式:qmlRegisterType注册和设置上下文属性,以及C++访问QML对象的读写属性和信号处理。通过实例分析,展示了从创建项目到实现通信的完整过程。
摘要由CSDN通过智能技术生成

一.QML简介

       从 Qt 4.7 开始,Qt 引入了一种声明式脚本语言,称为 QML(Qt Meta Language 或者 Qt Modeling Language),作为 C++ 语言的一种替代。而 Qt Quick 就是使用 QML 构建的一套类库。 QML 是一种基于 JavaScript 的声明式语言。
      Qt公司推出Qt Quick技术的一部分,更好的支持触摸屏

      描述性语言,非常像CSS,html,支持JavaScript,支持与C++交互

示例代码段如下:

import QtQuick 2.2; 
import QtQuick.Window 2.2; 

Window { 
      id: root
      width: 1920; 
      height: 720 
      color: "#FFFFFF"; 
      visible: true; 

      MouseArea{ 
            anchors.fill: parent 
            onClicked: { 
                  hello();  //调用函数
            } 
      } 

      function hello(){ //定义函数
            root.title = "Hello QML!"; 
      }
}

二.QML访问c++概述

            Qt集成了QML引擎和Qt元对象系统,使得QML很容易从C++中得到扩展,在一定的条件下 QML就可以访问QObject派生类的成员,例如信号、槽函数、枚举类型、属性、成员函数等。

三.QML访问c++实现案例:采用qmlRegisterType 注册方式

案例分析:QtCreator5.9.3中创建,Projects选择QtQuickApplication,工程名为TestQMLComponent选择QtQuick2.2,然后在自动生成的文件中添砖加瓦

1.新建头文件testqc.h,定义信号和槽,要被qml访问,条件

是派生自QObject类或QObject类的子类,

是使用Q_OBJECT宏。
 

2.修改main.cpp将testqc注册到元对象中,qml才可以访问

        1)引入头文件

       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小豆子的天下

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值