去年買了一本 Qt4 視窗程式開發的書,我的印象是,當初裝了最新的Qt Creator,發現跟介面跟書上的有點差別,學起來有點卡。然後,又換裝跟書上同版本的Qt Creator;可是,想一想,要學乾脆就學 Qt5 跟最新的 Creator IDE。阿後來呢.... 因為有點忙,學習 Qt 的 priority 就自動降到最低.... 最近我又心血來潮,想說再來學一下好了.... 趕快上網找一下有沒有不錯的參考文獻,然後強迫自己寫網誌紀錄一下,應該是... 恩... 可以堅持一下吧!!
網誌主要還是做摘要,畢竟完整的教學已經有人寫好了,實在也沒必要自己再寫一次 (就我這個新手要寫教學,還是有點怯生生的啦~~~)。
我的參考文獻:中文版《Qt5 Cadaques》
網誌主要還是做摘要,畢竟完整的教學已經有人寫好了,實在也沒必要自己再寫一次 (就我這個新手要寫教學,還是有點怯生生的啦~~~)。
我的參考文獻:中文版《Qt5 Cadaques》
Qt 5 的亮點
- QtQuick使用者介面技術,讓前後端的開發分離。前端的使用者圖形介面(UI),就交給QML和JavaScript來處理
- QML是一種標記語言。我對標記語言的理解是這樣的,就是一種講給「畫圖機器人(渲染引擎)」聽的語言。搭配 JavaScript,就能作一些元素的動態變化 (目前還不知道能不能做其他事情)。
- 我發現,這樣的UI開發模式,跟寫網頁好像哦! (我認為這樣的作法太正確了....)
Qt 的構建模組
- 模組(通常)就是函式庫,有分「基礎型模組」跟「附加模組」。
- 核心基礎模組
- Qt + [模組名],模組名也都很直覺,一看就大概普普懂
- 詳細的各模組說明
- 附加模組
- 3D, Bluetooth, Contacts, Location 等,我比較好奇的是 Organizer, Publish and SubScribe, Service Framework, Feedback,等多學一點東西之後,再來研究一下
Hello World
- 程式說明見此
- 我看到兩件事
- .qmlproject 檔:Project的配置信息,由Qt Creator管理,不需編輯它
- .qml 檔:描述了一系列有層次的使用者介面
- UI 的鋪陳在此
應用程式類型 (Application Types)
- Console Application
- 我在想,應該跟GUI無關的,都屬於這一類吧.... 背景服務、工具函式那些東西吧!
- 字符串處理、容器類、文件IO
- 視窗應用程式 (有些內容引用自參考文獻,但我把原文中的"窗口"改成"視窗")
- 需要 GUI 的應用程式
- 自定義視窗部件
- Qt自帶了大量現成的桌面視窗部件,你有很大的幾率不需要再做這些工作
- 視窗部件就是按鈕、check box、radio button這些東西
- 桌面視窗
- 你的工作只需要在一個打的視窗容器中安排不同的的視窗部件。在Qt中一個視窗部件能夠包含其它的視窗部件。這個操作由分配父子關系來完成。
- 繪製圖形
- 一個圖形視窗(graphics view)能夠在一個場景(scene)排列簡單的幾何圖形
- view 是視窗部件的觀念
- scene 是畫圖的觀念,用圖形來組成場景,場景會畫到 view 部件
- 要知道 scene 要畫到哪個 view 身上?所以自然要建立他們之間的關係...
- m_view->setScene(m_scene);
- 數據適配
- Qt Quick應用程式
- Qt Quick 提供一個 QML 的環境應用程式作為使用者介面前端,後端使用本地的C++程式碼。
- QML需要在運行時啟動,Qt 提供的典型運行環境為 qmlscene,也可自訂
先摘要到這裡吧~~~