一起來學 QML & Qt 5 (I)

  去年買了一本 Qt4 視窗程式開發的書,我的印象是,當初裝了最新的Qt Creator,發現跟介面跟書上的有點差別,學起來有點卡。然後,又換裝跟書上同版本的Qt Creator;可是,想一想,要學乾脆就學 Qt5 跟最新的 Creator IDE。阿後來呢.... 因為有點忙,學習 Qt 的 priority 就自動降到最低.... 最近我又心血來潮,想說再來學一下好了.... 趕快上網找一下有沒有不錯的參考文獻,然後強迫自己寫網誌紀錄一下,應該是... 恩... 可以堅持一下吧!!

網誌主要還是做摘要,畢竟完整的教學已經有人寫好了,實在也沒必要自己再寫一次 (就我這個新手要寫教學,還是有點怯生生的啦~~~)。

我的參考文獻:中文版《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,也可自訂

先摘要到這裡吧~~~
simen

An enthusiastic engineer with a passion for learning. After completing my academic journey, I worked as an engineer in Hsinchu Science Park. Later, I ventured into academia to teach at a university. However, I have now returned to the industry as an engineer, again.

Post a Comment (0)
Previous Post Next Post