您的位置:首页 > 产品设计 > UI/UE

QtQuick UI 问答

2016-06-22 19:26 411 查看

有关 QtQuick UI 的问答

什么是
QtQuick UI


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

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

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


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

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

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

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

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

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

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

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

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

/* 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.qml
ctrl
+
R
运行,就可以看到按钮的效果了,测试变得如此简单

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

其他
JavaScriptFiles
ImageFiles


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

这里就要祭出
Files
了。

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


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

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

QtQuick 进阶
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  QtQuick-UI