前言我们在第一篇教程的时候给大家讲过本系列教程会采用Qt Quick方式进行开发,那么Qt Quick是什么呢?本篇文章带大家简单来了解一下。Qt Quick简单认识要了解一个技术,相信官网是最好的去处,所以我们看一下官网对于Qt Quick的介绍,Qt Quick,不过这个介绍界面的最后编辑时间是15年,所以可能会有点不是很准确了,但是没有在官网找到最新的介绍,下面引用一部分主要内容的翻译:
简单来讲,就是使用Qt Quick来开发应用程序会变得更加简单,我们可以使用QML这种声明式语言来快速实现我们的UI部分,这就跟我们的网站开发一样前端使用QML来开发,然后后端用C++来开发,这样就可以在很大程度上来缩短软件的开发时间,Qt Quick首次发布时间是2010年,当时的Qt版本是4.7,相信这么多年过去Qt Quick各方面肯定都更加完善了。 QML(Qt Meta-object Language)简单了解貌似没在官网找到关于QML的介绍,那么给大家看一下QML的百度百科吧:
就像上面讲的,QML兼具了UI界面文件和QtScript的有点,非常方便的将界面设计和与C++交互融化在了一起,这是Qt Quick最重要的特性,可以让我们以最便捷的方式去开发应用。 Qt Quick简单示例我们通过一个简单的Hello World示例来看一下,QML有多方便,先上代码,本节课不讲工程如何创建,只简单看一下qml文件。import QtQuick 2.12 import QtQuick.Window 2.12 Window { visible: true width: 400 height: 300 title: qsTr("Hello World") Text { text: qsTr("Hello World") anchors.centerIn: parent } } 大家猜一猜上面的代码完成了哪些操作呢?大家要是觉得还是非常麻烦的话,可以跟下面的代码做一下对比,下面的代码是Qt Widgets中专门处理界面的代码,也就是我们常说的.ui文件,编写语言是XML,当然可以用设计师模式来通过图形界面编写: <?xml version="1.0" encoding="UTF-8"?> <ui version="4.0"> <class>MainWindow</class> <widget class="QMainWindow" name="MainWindow"> <property name="geometry"> <rect> <x>0</x> <y>0</y> <width>400</width> <height>300</height> </rect> </property> <property name="windowTitle"> <string>Hello World</string> </property> <widget class="QWidget" name="centralWidget"> <widget class="QLabel" name="label"> <property name="geometry"> <rect> <x>160</x> <y>110</y> <width>81</width> <height>16</height> </rect> </property> <property name="text"> <string>Hello World!</string> </property> </widget> </widget> <widget class="QMenuBar" name="menuBar"> <property name="geometry"> <rect> <x>0</x> <y>0</y> <width>400</width> <height>23</height> </rect> </property> </widget> <widget class="QToolBar" name="mainToolBar"> <attribute name="toolBarArea"> <enum>TopToolBarArea</enum> </attribute> <attribute name="toolBarBreak"> <bool>false</bool> </attribute> </widget> <widget class="QStatusBar" name="statusBar"/> </widget> <layoutdefault spacing="6" margin="11"/> <resources/> <connections/> </ui> 这两个代码,实现的功能是类似的,这下对比,大家有没有更加直观的感觉呢?那我们再看一下实现的效果: QML 可以看到,两者实现的效果是一样的,那么问题来了,你会选择哪一个呢?OK,本节教程就到这里,主要是为了先给大家一个概念,下节课我们正式从创建工程开始进入我们的Qt学习教程。 |