前言我们在第一篇教程的时候给大家讲过本系列教程会采用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学习教程。 |