Qt教程
+ -

QML与QWidget

2024-05-06 6 0

QT有两种开发UI程序的方法。
第一种就是传统的QWidget,这就是系统提供的C++的桌面应用程序开发框架,即各类控制。
另一种就是基于标记语言QML实现的。

QML

QML(Qt Meta-Object Language)是Qt提供的一种标记性语言,用于快速创建用户界面。
使用QML来开发应用程序界面时,使用扩展名qml来存储QML标记语言。

总不能和Cpp文件混在一起吧。

一个简单的QML示例如下:

import QtQuick 2.12
import QtQuick.Window 2.12
import QtQuick.Controls 2.5
Window {
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")
}

这玩意就相当于Html和CSS的结合体。
将以上的文件保存为main.qml后,在应用程序中通过如下方法调用:

QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
if (engine.rootObjects().isEmpty())
{
    return -1;
}

这样QT应用程序会自动解析QML文件中的标记语言,按照标记语言的要求渲染程序界面。

QML与QWidget的选择

先用QWidget,后有QML。所以QWidget的开发比较传统,有很多丰富的开发库的资料,但是开发过程比较传统,但是因其更接近最底层的开发模块,所以开发更加灵活,但需要比较多的操作系统UI开发知识。所以说为了实现复杂的软件,可以选择QWidget.
QML是后来者,更加轻量,可以使用很少的语言实现很多非常炫酷的效果。但总是在别人的定义好的框架下玩耍,多多少少有点限制。所以企业级的更复杂的软件建议使用QWidget,个人为了追求快速实现软件,不想花费太多的心思,更关注业务或者移动端,可以搞搞QML。

所以QWidget与QML的关系可以简单理解为C++和C++定义好的类的关系。

QML的调试

QML毕竟是解析性语言,所以不能像C++一样那么方便的调试。
你需要调试这个程序的时候,请右键项目-》属性-》Qt Project Settings->QML->Enable QMl Debugging->改为是,这样之后你在qml文件中打上的断点就可以被命中了。

0 篇笔记 写笔记

作者信息
我爱内核
Windows驱动开发,网站开发
好好学习,天天向上。
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!