QML入门教程(1): Qt Quick与QML介绍
1 什么是Qt Qucik?
Qt Quick是QtSDK4.7中引入的一种新的界面开发框架,使用QtQuick,你可以快速、 轻松地创建供移动和嵌入式设备使用的动态触摸式界面和轻最级应用程序,这也是它被命名 为Quick的原因.
Qt Quick包括描述性语言QML、语言运行时、 大量的用户界面元素、Qt Creator对QML的完美支持、Qt Quick设计器、QML与C++混合 编程支持等众多技术,使用它你可以轻松、快速地为移动和嵌入式设备创建流畅的用户界面. 在Android等移动设备上,Qt Quick应用默认使用0penGLES,渲染效率很高,你可以 用它创建非常炫、非常酷、非常迷人的界面.QML可以扩展现有的应用程序,也可以称之为“二次开发”。说实话在毕业刚入职时接触了类似的项目,当时也是一脸懵逼,怎么会有这种形式的开发,在别人做好的软件上直接修改。其实类似的二次开发有CAD, Catia等,不过它们是dll, com组件这种插件的模式。
QtQuick能够与C++,JS有机结合混合编程,开发者可以使用已有的Qt技术结合Qt Quick, 创建更好的应用程序。
相对于QWidget, MFC等,qml创建应用程序可能会更简单一些。
2 新建Qt Quick项目
打开QtCreator,我所用的版本是Qt5.12, Qt Quick默认提供了四种基础项目:
(1)空项目Empty
(2)Scroll
(3)页面切换Stack
(4)多页面切换Swipe
下面创建一个空的qml项目,QtCreator会给我们创建好,默认的两个文件main.cpp, main.qml
main.qml代码
import QtQuick 2.12
import QtQuick.Window 2.12Window {visible: truewidth: 640height: 480title: qsTr("Hello World")color:"gray"
}
我加了个属性color, 修改窗口背景颜色。
一个qml文件主要由两部分组成:
- import语句 :这个就像C++中的头文件,
- QML对象树 :根对象是Window, 然后可以在Window中添加各种控件,例如按钮,文本,菜单等
main.cpp
#include <QGuiApplication>
#include <QQmlApplicationEngine>int main(int argc, char *argv[])
{QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);QGuiApplication app(argc, argv);QQmlApplicationEngine engine;const QUrl url(QStringLiteral("qrc:/main.qml"));QObject::connect(&engine, &QQmlApplicationEngine::objectCreated,&app, [url](QObject *obj, const QUrl &objUrl) {if (!obj && url == objUrl)QCoreApplication::exit(-1);}, Qt::QueuedConnection);engine.load(url);return app.exec();
}
该文件是C++代码,用QML引擎加载main.qml文件,显示窗口,如主循环。
该程序的界面如下:
例如下面是在Window中加了一个按钮和矩形
代码如下:
import QtQuick 2.12
import QtQuick.Window 2.12
import QtQuick.Controls 2.5Window {visible: truewidth: 640height: 480title: qsTr("Hello World")color:"gray"Button{id:quittext:"tuichu"anchors.left:parent.leftanchors.leftMargin:4anchors.bottom:parent.bottomanchors.bottomMargin:4onClicked:{Qt.quit()}}Rectangle{x:100y:70width:100height:50color:"#00C0CC"z:1opacity:0.6}
}
因为引入了按钮,那么就得导入它的头文件 import QtQuick.Controls 2.5,运行界面 如下
各个控件怎么放呢,这就涉及到布局,可以使用锚点相对布局,也可以 用绝对布局,在后面的文章中介绍。
QML入门教程(1): Qt Quick与QML介绍相关推荐
- Qt Quick 之 QML 与 C++ 混合编程详解
Qt Quick 技术的引入,使得你能够快速构建 UI ,具有动画.各种绚丽效果的 UI 都不在话下.但它不是万能的,也有很多局限性,原来 Qt 的一些技术,比如低阶的网络编程如 QTcpSocket ...
- Qt Quick 和qml介绍
Qt Quick和qml Qt Quick是QtSDK4.7中引入的一种新的界面开发框架,使用QtQuick,你可以快速. 轻松地创建供移动和嵌入式设备使用的动态触摸式界面和轻最级应用程序,这也是它被 ...
- Qt 5入门指南之Qt Quick编程示例
Qt 5入门指南之Qt Quick编程示例 使用Qt创建应用程序是十分简单的.考虑到你的使用习惯,我们编写了两套教程来实现两个相似的应用程序,但是使用了 不同的方法.在开始之前,请确保你已经下载了Qt ...
- 树莓派python界面qt_树莓派QT入门教程——使用Qt开发界面程序控制GPIO
树莓派QT入门教程--使用Qt开发界面程序控制GPIO 玩转树莓派2017-07-12 12:36 树莓派入门教程--使用Qt开发界面程序 前言 Qt是一个1991年由奇趣科技开发的跨平台C++图形用 ...
- Arduino可穿戴开发入门教程LilyPad和LilyPad Simple的介绍
Arduino可穿戴开发入门教程LilyPad和LilyPad Simple的介绍 LilyPad和LilyPad Simple的介绍 LilyPad和LilyPad Simple是LilyPad微控 ...
- PyKivy入门教程:Kivy Python库的介绍、安装及使用方法详解
PyKivy入门教程:Kivy Python库的介绍.安装及使用方法详解 Kivy是一个跨平台的Python GUI工具包,可以用于开发能够在多种设备和操作系统上运行的应用程序.Kivy支持触摸输入. ...
- QML官方系列教程——Using Qt Quick Designer
附网址:http://qt-project.org/doc/qtcreator-3.1/creator-using-qt-quick-designer.html Using Qt Quick Desi ...
- Qt Quick 中 QML 与 C++ 混合编程详解
Qt Quick 技术的引入,使得你能够快速构建 UI ,具有动画.各种绚丽效果的 UI 都不在话下.但它不是万能的,也有很多局限性,原来 Qt 的一些技术,比如低阶的网络编程如 QTcpSocket ...
- Qt Quick编程——QML的核心部分ECMAScript
说道QML,不得不先说一下ECMAScript: ECMAScript语言的标准是由Netscape.Sun.微软.Borland等公司基于JavaScript和JScript锤炼.定义出来的. EC ...
- QML入门教程:一、QML和QtQuick简介以及QML实例
从 Qt 4.7 开始,Qt 引入了一种声明式脚本语言,称为 QML(Qt Meta Language 或者 Qt Modeling Language),作为 C++ 语言的一种替代.而 Qt Qui ...
最新文章
- 解读丨从自动驾驶到学习机器学习:科技发展的15大趋势
- 【以太坊智能合约】Embark Framework 开发基础篇
- 合并果子_tyvj1066_vijos1097_codevs1063_贪心+堆
- cucumber测试_如何在Cucumber中进行后端测试
- 御龙在天手游怎么不显示服务器了,御龙在天手游进不去怎么办 闪退原因及解决办法...
- 菜鸟技术专家胡斌:技术架构的战略和战术原则
- 从远程服务器获取数据
- 谁将成为下一个风口?
- 详解Python切片技术
- android优美列表页面,android listview 列表 点击列表进入详细页面
- CUPS搜索添加打印机的范例代码
- lintcode 中等题:Palindrome Linked List 回文链表
- 16秋计算机JAVA第一节课作业(钟永钜)
- 计算机专业可以评电力工程职称吗,电力工程类职称评审专业范围,你了解多少?...
- 用计算机运算符编写检索式,在计算机检索中,常用的布尔逻辑算符有哪几种
- win10计算机图标怎么放桌面壁纸,图解win7、win10创意电脑桌面图标摆放的方法
- 数据分析师是青春饭吗?年龄影响很大吗?
- 伟景行Citymaker三维Gis加载FDB数据
- python 3d库 机房监控_三维可视化机房智能监控系统
- 如何退出Vi或Vim编辑器
热门文章
- koreader下载_Koreader —— Kindle 的 PDF 文档重排插件
- 从原理到实战,全面总结 Android HTTPS 抓包
- 计算机初级程序员哪里颁发的,初级程序员证书怎么考_初级程序员证书考什么_上学吧...
- 回归模型1:优化的灰色模型matlab实现
- python数字转中文大写_阿拉伯数字转换成大写汉字的Python代码
- CTF-密码学-培根密码
- 期刊论文公式编号、居中技巧
- 求职软件测试工程师英文简历,软件测试员英文简历模板.doc
- 华硕飞行堡垒扬声器没声音_华硕飞行堡垒FX50J音频系统是什么?FX50J有扬声器吗?...
- TCPClient代码