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

相关推荐
代钦塔拉2 小时前
【C++/Qt 进阶】设计模式系列(6):桥接模式——把“两个独立变化的维度“拆开
c++·qt·设计模式
156082072193 小时前
银河麒麟 Qt 可执行文件打包说明
开发语言·驱动开发·qt
Quz4 小时前
QML GridView 布局:网格排布与排列方向
qt
Quz4 小时前
QML GridView 动态:增删过渡与滚动定位
qt
沫璃染墨1 天前
《Qt从零入门系列(十四):QThread多线程详解——从线程创建到客户端阻塞处理》
开发语言·c++·笔记·qt·ui·交互·线程
代钦塔拉1 天前
【C++/Qt 进阶】设计模式系列(5):适配器模式——给“不兼容的接口“贴一层翻译膜
c++·qt·设计模式
把我格子衫拿来2 天前
VTK 9.5 与 Qt 6 联合开发:从嵌入三维窗口到可维护的桌面架构
c++·python·qt·vtk·三维可视化
把我格子衫拿来2 天前
VTK 与 Qt 的 CMake 工程怎么组织?模块、工具链与二进制兼容排错
c++·qt·vtk·cmake·工程实践
代钦塔拉2 天前
【C++/Qt 进阶】设计模式系列(4):原型模式——用“克隆“代替“重新构造“
c++·qt·设计模式
Python图像识别2 天前
56-【2027毕设】YOLO11X光安检危险物品检测系统 - Python完整源码+PyQt5界面+训练模型+数据集
python·qt·课程设计