一.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,工程名为TestQML,Component选择QtQuick2.2,然后在自动生成的文件中添砖加瓦。
1.新建头文件testqc.h,定义信号和槽,要被qml访问,条件:
一是派生自QObject类或QObject类的子类,
二是使用Q_OBJECT宏。
2.修改main.cpp,将testqc注册到元对象中,qml才可以访问
(1)引入头文件
(