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 进阶
相关文章推荐
- DEPENDENT SUBQUERY” 和 “SUBQUERY”
- 【iOS】UITableViewDelegate 方法没有调用
- iOS 9: UIStackView入门
- 2632: [neerc2011]Gcd guessing game
- iOS开发:UIImageView常用操作
- 【IOS开发】UIImageView的用法。。图片
- Sequelize和MySQL对照
- iOS UITextView 输入内容实时更新cell的高度
- Android Studio中 finished with non-zero exit value 2
- Gradle详解-Chapter 16. Writing Build Scripts
- 简单实现cell的动画
- hibernate里createSQLQuery
- [DIV/CSS] Vue.js 开发实践:实现精巧的无限加载与分页功能
- iOS UITableViewCell的混乱显示与重用问题
- iOS开发中常用的分类方法---UIImage+extension
- Range Sum Query 2D - Immutable
- mongovue使用简介
- Android 消息机制之 handler、messageQueue、looper深入剖析
- UIScrollerView遇到UINavigationController
- extjs中超级厉害获取组件的方法Ext.ComponentQuery.query(),根据组件类型(xtype属性)获取组件。