QtQuick UI 问答

本文介绍了QtQuickUI,一种纯QML项目,通过qmlproject文件管理,实现快速开发。文章解释了如何使用QtQuickUI,其优势及如何与C++交互,并提供了qmlproject文件配置示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有关 QtQuick UI 的问答

什么是 QtQuick UI

  1. 是一个由 qmlproject 为后缀名的文件所管理的纯 QML 项目。

  2. qmlproject 文件本身就是 qml 的语法。

  3. 按下 ctrl + N,仔细找,一定能找到 QtQuick UI 这个选项的。

使用 QtQuick UI 项目有什么好处?

  1. 首先 QtQuick UI 是一个纯 QML 项目,没有 c++ 的文件,也就意味着不用编译 c++,就像浏览器打开 html 那样,QML 的文件使用一个名为 qmlscene 的程序打开的。

  2. 其次使用 QML 的目的是快速开发,而 c++ 和 qrc 资源文件漫长的编译时间让快速开发成为一个不小的障碍。

既然 QtQuick UI 是纯 QML 项目,是不是意味着无法直接和 C++ 交互?

是的,但是可以通过插件的方式来处理, qmlscene 支持加载 QtQuick 2 插件。怎么构建 一个 QtQuick 2 插件呢?直接搜索即可找到你想要的。

既然 qmlproject 是纯 QML 项目的项目文件,那么和 pro 有什么类似的功能吗?

  1. pro 文件是管理 Qt C++ 的项目文件,可以在里面指定源码, qrc 资源,OTHER_FILES,c\c++ 库。

  2. 相对于 proqmlproject 也有源码和资源的概念。源码直接是 *.qml,资源的话,一般是指图片。

  3. 这里给出一些使用技巧。先看如下的代码示例:

/* File generated by Qt Creator */

import QmlProject 1.1

Project {
     mainFile: "main.qml"

    /* Include .qml, .js, and image files from current directory and subdirectories */
    QmlFiles {
        directory: "."
    }
    JavaScriptFiles {
        directory: "."
    }
    ImageFiles {
        directory: "."
    }
    /* List of plugin directories passed to QML runtime */
    // importPaths: [ "../exampleplugin" ]
}

语法是 QML,有 import,也有一个根对象。

mainFile: "main.qml"

这个项目文件指明了此项的入口文件是 main.qml

如果你把行代码注释的话,是不是这个项目就没有入口文件,然后就无法启动了呢?

答案是否定的。由于没有在 qmlproject 中指定入口文件,所以 qmlscene 就会直接运行当前,你所打开的那个 qml 文件。这样就可以有更高级的用法了。

例如我编写一个 test_my_button.qml 用来测试自定义的 Button,此时只要注释掉 qmlproject 中的 mainFile ,然后在编辑器打开 test_my_button.qmlctrl+R 运行,就可以看到按钮的效果了,测试变得如此简单

往下看 QmlFiles,嗯,见文生义。就是指定 directory (目录)下的所有 *.qml 文件。

其他 JavaScriptFilesImageFiles

然后你问我想在我这个 QtQuick UI 项目中显示其他格式的文件,怎么写?

这里就要祭出 Files 了。

Files {
    fileter: "*.md"
    directory: "."
}

这段就是获取所有文件后缀名为 md 的文件。

importPaths 这个东西文章不好写。你直接看这个项目 Sparrow.2,代码层面去理解他吧。(下载,然后用 QtCreator 打开 *.qmlproject 文件)。

QtQuick 进阶

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值