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方式赋值

相关推荐
实心儿儿3 小时前
Qt — Qt 多线程
开发语言·qt
沫璃染墨6 小时前
《Qt从零入门系列(十一):Qt事件机制详解——从QEvent到鼠标、键盘与定时器事件》
c++·qt·ui·硬件工程·交互·个人开发·qt5
实心儿儿6 小时前
Qt — Qt 窗口
开发语言·qt
Quz8 小时前
QML 滚动条:自定义滚动样式与滚动逻辑
qt
Quz8 小时前
QML 滚动视图:ScrollView、Flickable,以及 ScrollIndicator 用法
qt
小许同学记录成长9 小时前
几何体编辑算法
qt·算法
时间的拾荒人9 小时前
Qt 信号与槽机制详解(二):连接方式详解与面试指南
开发语言·qt·面试
实心儿儿20 小时前
Qt — Qt 事件
开发语言·qt
bkspiderx1 天前
Qt 的消息机制:事件驱动与信号槽的底层逻辑
开发语言·qt·信号槽·事件驱动·qt 的消息机制