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
相關文章
- QT入門QT
- QT快速入門QT
- Qt入門(11)——Qt外掛QT
- Qt入門(12)——Qt國際化QT
- Qt入門(13)——Qt的呼叫退出QT
- Qt入門(20)——Qt模組簡介QT
- Qt入門之概述QT
- 27.Qt Quick QML-State、TransitionQTUI
- Qt Quick 訊息列表檢視元件QTUI元件
- Qt入門(9)——Qt中的執行緒支援QT執行緒
- Qt快速入門系列教程目錄QT
- Qt入門(3)——訊號和槽QT
- Qt入門(10)——除錯技術QT除錯
- Qt入門(15)——使用視窗部件QT
- Qt入門(16)——組裝視窗部件QT
- Qt入門(19)——自定義視窗部件QT
- QT開發快速入門-教程1:搭建QT開發環境QT開發環境
- 32.qt quick-模仿QQ登入介面實現3D旋轉(Rotation、Flipable)QTUI3D
- 32.qt quick-PathView實現好看的home介面QTUIView
- 29.qt quick-在QML中呼叫C++類QTUIC++
- 34.qt quick-Popup彈出視窗自定義QTUI
- Windows下Qt 5.2 for Android開發入門WindowsQTAndroid
- Qt入門(8)——事件和事件過濾器QT事件過濾器
- QT程式設計------VS2012配置QT環境,QT入門程式設計QT程式設計
- 如何入CTF的“門”?——所謂入門就是入門
- Quick Pow: 如何快速求冪UI
- QT從入門到入土(四)——多執行緒QT執行緒
- 《Qt 6.x從入門到精通》簡介QT
- 26.Qt Quick QML-RotationAnimation、PathAnimation、SmoothedAnimation、Behavior、PauseAnimation、SequentialAnimation和ParallelAnimationQTUINaNParallel
- 28.qt quick-ListView高仿微信好友列表和聊天列表QTUIView
- 如何入門 MySQLMySql
- java如何入門Java
- Qt入門(17)——組裝複雜的控制元件QT控制元件
- Qt Creator匯入不同Qt版本QT
- 24.Qt Quick QML-Canvas和Context2D詳解QTUICanvasContext
- 如何入門掌握Nginx?Nginx
- 自學Java如何入門?Java
- 如何高效入門Github?Github