Qml——第一个qml的程序

1、Qml的项目创建

2、第一个qml程序编写

首先main.cpp中的内容:

复制代码
#include <QGuiApplication>
#include <QQmlApplicationEngine>

int main(int argc, char *argv[])
{
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
    QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
#endif
    QGuiApplication app(argc, argv);
    
    //创建引擎(解析QML文件;创建QML里的根对象、管理QML组件生命周期)
    QQmlApplicationEngine engine;
    const QUrl url(QStringLiteral("qrc:/main.qml"));
    QObject::connect(
        &engine, //信号发送者
        &QQmlApplicationEngine::objectCreated, //当QML对象创建完成时发出的信号
        &app,
        
        //下面这段是lambda回调
        /*
        [url] 把外部的 url 变量"抓"进 lambda 内部使用
        (QObject *obj, const QUrl &objUrl) 接收信号传来的两个参数
        */
        
        [url](QObject *obj, const QUrl &objUrl) {
            if (!obj && url == objUrl)
                QCoreApplication::exit(-1);
        },
        Qt::QueuedConnection);
    engine.load(url);

    return QCoreApplication::exec();
}

其次,main.qml分为import语句与对象树

3、QML对象树

  • 每个qml文件都有一个根元素,一个父元素可以有多个子元素,子元素可以通过parent关键字访问父元素

  • 每个元素下面都拥有属性,按照name:value方式赋值

相关推荐
橙橙笔记5 小时前
QT的学习第四部分
linux·qt·学习·音视频
sycmancia15 小时前
Qml——信号连接、自定义信号
qt
奇树谦3 天前
Qt Quick 图片加载与 GPU 纹理机制详解:QImage、QQuickTextureFactory、QSGTexture 与异步加载
开发语言·qt·系统架构
BroNekoX4 天前
我将基于 QtQuick 框架开发的音乐播放器性能做到顶级
qt
小小晓.4 天前
Qt 对话框、QLineEdit 与布局管理实战详解
开发语言·qt
扶尔魔ocy5 天前
【QT入门到晋级】用开源的自定义控件开发
c++·qt·自定义控件
lhbweilai5 天前
QT项目(串口助手)
开发语言·qt
小鱼仙官6 天前
Qt 主界面弹出分界面
开发语言·qt
誰能久伴不乏6 天前
用 UDP 做一条“可靠“的控制通道
c++·qt·网络协议·udp
Bczheng16 天前
VS2022 安装MFC和QT
c++·qt·mfc