为什么选择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


Qt Quick 如何入门?相关推荐

  1. 【Qt Quick】零基础入门系列之安装与卸载(一)

    [Qt Quick]概述 |本文大概阅读时间8分钟. |版权说明:原创文章,如需转载,请标明文章出处.https://blog.csdn.net/weixin_40192195/article/det ...

  2. Qt Quick 4小时入门-安晓辉-专题视频课程

    Qt Quick 4小时入门-39905人已学习 课程介绍         Qt Quick(QML)是Qt 5里推荐的UI开发框架,能够为各种设备搭建流畅且绚丽的用户界面.本课程删繁就简,精心选择主 ...

  3. Qt Quick入门

    Qt Quick入门 Qt Quick入门 创建警报项目 Qt创作者 其他源文件 输入新警报 编辑警报 删除警报 概括 Qt Quick入门 基于警报应用程序的Qt Quick教程. 本教程介绍如何开 ...

  4. 《Qt Quick 4小时入门》学习笔记4

    http://edu.csdn.net/course/detail/1042/14806?auto_start=1 Qt Quick 4小时入门 第七章:处理鼠标与键盘事件 1.处理鼠标事件 鼠标信号 ...

  5. style 字体加粗_第9篇 Qt Quick入门教程之基础(九)文本显示和字体

    导语 文本显示是界面开发必不可少的内容,在Qt Quick模块中提供了 Text 项目来进行文本的显示,其中可以使用 font 属性组对文本字体进行设置.这一篇我们来看看它们的具体使用. 使用字体 就 ...

  6. Qt 5入门指南之Qt Quick编程示例

    Qt 5入门指南之Qt Quick编程示例 使用Qt创建应用程序是十分简单的.考虑到你的使用习惯,我们编写了两套教程来实现两个相似的应用程序,但是使用了 不同的方法.在开始之前,请确保你已经下载了Qt ...

  7. 【Qt5开发】Qt Quick/QML快速入门视频教程

    learnqml 免费试看地址:https://jiaoyu.taobao.com/course/QKT_2081022 完整视频购买地址:https://item.taobao.com/item.h ...

  8. C++界面开发框架Qt新手入门指南 - 如何创建Qt Quick UI项目

    Qt技术交流群:166830288      欢迎一起进群讨论 Qt Quick UI Prototype项目可用于测试或制作用户界面原型,或者用于为QML编辑设置单独的项目.您不能将它们用于应用程序 ...

  9. qt on android qml,Qt on Android: Qt Quick 之 Hello World 图文详解

    在上一篇文章,<Qt on Android:QML 语言基础>中,我们介绍了 QML 语言的语法,在最后我们遗留了一些问题没有展开,这篇呢,我们就正式开始撰写 Qt Quick 程序,而那 ...

最新文章

  1. NC:MetaSort通过降低微生物群落复杂度以突破宏基因组组装难题
  2. 原本要与Hinton当同事,最后被迫Bengio门下读博? | 独立研究员的坎坷之路
  3. python导入自定义模块和路径问题
  4. 【iOS-Cocos2d游戏开发之十五】详解CCProgressTimer 进度条并修改cocos2d源码实现“理想”游戏进度条!...
  5. LAS点云查看 转换格式
  6. 十五、Redis三种特殊类型之二HyperLoglog
  7. js list添加元素_JS基础与常用函数
  8. 最长公共子序列(C语言)
  9. 循环队列的java结构_java数据结构之循环队列(数组实现)
  10. 程序设计爬楼梯问题_楼梯案例:解决楼梯问题的C ++程序
  11. github 部署mysql_GitHub - luckman666/deploy_mysql_cluster: 一键部署mysql集群
  12. 导致jquery.min.map 404 (Not Found)错误的原因
  13. iCloud 照片如何转移至谷歌相册?
  14. 数据结构算法常见面试考题
  15. 微软drive服务器,OneDrive:微软云存储服务
  16. 美国国家安全局(NSA)网络攻击主战武器NOPEN
  17. MyBatis注解开发方式
  18. 讯飞AIUI ubuntu linux使用
  19. IOS开发百度地图API入门到精通-用点生成路线,导航,气泡响应
  20. 自兴人工智能——Python第三课(字符串和字典)

热门文章

  1. 50个BBS经典签名
  2. 盲盒商城小程序如何实现盲盒玩法
  3. 今宵除夕夜,天涯共此时
  4. nms,soft nms算法理解
  5. SAP ABAP——数据类型(一)【数据类型概要及分类】
  6. docker 安装 启动停止 重启 自动安装
  7. 政府采购网上商城是不是未来的趋势
  8. python人脸识别门禁系统生产厂家_人脸识别门禁硬件生产厂家
  9. 美团点评-数据开发一面凉经
  10. Python笔记---常用正则表达式练习