Qt Quick 如何入门?

为什么选择QT?

 毕业设计要做一款基于GUI界面交互的自动售卖系统,在众多的GUI开发平台当中,我选择了QT。

    QT相比与其他GUI开发平台来说,最大的优势是跨平台。按我的理解,就是写好的一份代码可以不用过多的修改就能移植到Linux系统、Windows系统,甚至是IOS系统。

 或许因为我是一个Linux软件开发工程师,所以我会偏爱c/c++。其实也是一方面考虑到以后职业发展要用到C++。再加上通过这段时间对QT的体验,感觉GUI设计软件都有共通之处,所以也不必要去纠结哪个GUI开发平台,哪种语言好的问题?


用Qt Widgets 还是Qt Quick?

    在学习一门新的技术之前需要了解全局。我看了看QT的介绍,了解到QT开发是分为两大派系,一个是Qt Widgets ,另一个是Qt Quick。

Qt Widgets是什么?

按照官网的定义:

The Qt Widgets Module provides a set of UI elements to create classic desktop-style user interfaces. 

Qt Quick是什么?

按照官网的定义:

Qt Quick is a collection of technologies that are designed to help developers create the kind of intuitive, modern, and fluid user interfaces that are increasingly used on mobile phones, media players, set-top boxes, and other portable devices. Qt Quick consists of a rich set of user interface elements, a declarative language for describing user interfaces, and a language runtime. A collection of C++ APIs is used to integrate these high level features with classic Qt applications.

按照我的理解,Qt Widgets是适合传统桌面开发的UI库;Qt Quick是一种用qml语言开发的库,集成了很多绚丽的UI开发元素,能自动转化为c++语言运行,非常适合APP,嵌入式设备等要求界面冲击感强的应用场景。

按前辈的指引得知,

“对于传统的桌面程序来说,优先考虑使用 Qt Widgets,若要开发更“现代”的 UI 与高级应用,建议使用 Qt5.x + QML 2.x + QtQuick 2.x。”

“qml比较炫吧。比较适合移动端开发。widget对于pc端比较合适。兼容性更好。”qml比较炫吧。比较适合移动端开发。widget对于pc端比较合适。兼容性更好。“

Qt Quick利用一种类似java script 的qml语言进行开发,代码看上去就是json字符串的应用,对于c++水平不高的我来说是一个福利。


安装qt

1.到官网下载安装包:
https://download.qt.io/official_releases/qt/5.10/5.10.0/                                                                                                                                                    
2.一路安装就好,该安装的安装包全部安装上



面对Qt Quick如何入门?

    学习一门新技术在了解全局后还需要确定范围。搞清楚Qt Quick的范围和边界,对于学习才有动力。我找到一本很好的书学习Qt Quick, 安晓辉的《Qt Quick核心编程》可以助我一臂之力。

    按照我的归纳,以及项目应用需要,总结得出Qt Quick比较重要的有四大模块。

 一是GUI界面基本组成元素和布局;

 二是事件处理;

 三是多媒体与网络;

 四是qml语言的语法;


   在确定范围后,就要定义目标,确定难易:

详细参考附录: Qt Quick比较重要的有四大模块难易点拆解


在定义好目标后,为了加快学习进度以及更有针对性,我在github上寻找项目资源帮助我更好了解Qt Quick开发的应用。如:

EiriniMits/ShopMyCloset:

https://github.com/EiriniMits/ShopMyCloset/blob/master/LICENSE


我通过参考上面的代码并且在该工程的基础上修改,即可快速有针对性的学习。

这是我Qt Quick学习的一些感悟,先总结到这。明天的事我们明天再聊,后面继续总结Qt Quick的学习经验。

~                                                                     




附录:Qt Quick比较重要的有四大模块难易点拆解:

GUI界面基本组成元素和布局:

图形界面基本组成元素
基础:
TextInput
难点:
组件

可以自定义组件(类似可以自定义一个结构体)

图形界面元素布局
难点:
定位器
布局管理器
与布局相关的类库:
Item Layout
RowLayout 、 
ColumnLayout 、 
GridLayout


Item Positioner
anchors ,锚布局

Row ,行布局
Column ,列布局
Grid ,表格布局
Flow ,流式布局
常用元素:
行编辑
文本块
ProcessBar
画布:
        基础:
    基本组成
基本绘图模式


Model/View:
ListView
TableView
GridView
PathView
        动画
基础:
动画分类
基本动画元素


难点:
三种模式
组合动画

qml语法:

整体难点:

对象
ECMAScript:
难点:
对象
宿主对象
C++与QML混合编程:
难点:
在QML中使用c++类和对象
在c++中使用QML对象

事件处理:
难点:
信号与槽:
定义信号
捕捉信号

信号处理器:

触发源的使用:
鼠标
键盘
定时器

触摸

多媒体:
基础:
播放音乐
视频
拍照


网络:
基础:
网络的对象

难点:
QML的Http
使用c++完成复杂的网络操作


参考:

Qt Widgets、QML、Qt Quick的区别

https://blog.csdn.net/liang19890820/article/details/54141552

Ubuntu16.04下安装QT5.8
https://blog.csdn.net/hhrock/article/details/61621044





展开阅读全文

没有更多推荐了,返回首页