QML
QML (Qt Markup Language[3] 或 Qt Meta Language 或 Qt Modeling Language[4]) 是基於JavaScript、宣告式編程的程式語言,用於設計圖形使用者介面為主的應用程式。它是Qt Quick,諾基亞開發的使用者介面建立套件的一部分。QML 主要用於行動應用程式,注重於觸控輸入、流暢的動畫(60張/秒)和使用者體驗。QML documents 描述元素的物件樹。
编程范型 | 編程範型:宣告式編程、脚本语言 |
---|---|
實作者 | Qt發展框架 |
发行时间 | 2009 |
当前版本 |
|
型態系統 | 動態、強型別 |
網站 | [1] |
啟發語言 | |
JavaScript、Qt | |
影響語言 | |
Qt |
扩展名 | .qml |
---|---|
互联网媒体类型 | text/x-qml |
开发者 | Qt Project |
格式类型 | 脚本语言 |
网站 | qt-project |
QML 元素可以透過標準 JavaScript 增強,包括這 inline 和引入.js 檔。元素可以也無縫整合和使用 Qt 框架的 C++ 元件擴展。
語言的名稱是 QML。runtime的名稱是 QQuickView。
語法、語義编辑
基本語法编辑
範例:
import QtQuick 1.0 Rectangle { id: canvas width: 200 height: 200 color: "blue" Image { id: logo source: "pics/logo.png" anchors.centerIn: parent x: canvas.height / 5 } }
動畫编辑
Rectangle { id: rect width: 120; height: 200 Image { id: img source: "pics/qt.png" x: 60 - img.width/2 y: 0 SequentialAnimation on y { loops: Animation.Infinite NumberAnimation { to: 200 - img.height; easing.type: Easing.OutBounce; duration: 2000 } PauseAnimation { duration: 1000 } NumberAnimation { to: 0; easing.type: Easing.OutQuad; duration: 1000 } } } }
Qt/C++ 整合编辑
QML 不需要 Qt/C++ 的知識就能使用,但它可以輕鬆地擴展 Qt。
熟悉的概念
QML 提供直接訪問,從以下來自 Qt 的概念:
- QAction – action 類型
- QObject signals and slots – 作為在 JavaScript 中調用的函數
- QObject properties – 作為 JavaScript 中的變數
- QWidget – QDeclarativeView 是一個 QML-displaying widget
- Q*Model – 直接用在資料綁定 (如 QAbstractItemModel)
Qt 信號處理式编辑
MouseArea { onPressed: console.log("mouse button pressed") }
操作方法编辑
開發工具编辑
由于 QML 和 Javascript 的语法相似,大多数支持 Javascript 的编辑器均可编辑 QML。但是从 Qt Creator 的 2.1 版本开始,该 IDE 提供了完整的语法高亮、代码补全、内建帮助和所见即所得编辑器。在商业版本的 Creator 中,所见即所得编辑器还会提供更多的功能。
參考資料编辑
- ^ Qt 6.4 Released. 2022年9月29日.
- ^ Qt 5.14.1 Released. 2020-01-27 [2020-03-10]. (原始内容存档于2020-04-08).
- ^ Qt 4.8: QML Tutorial. [2013-10-31]. (原始内容存档于2013-11-02).
- ^ Henrik Hartz (Product Manager for Qt Software at Nokia) comment on the name. 24 August 2009 [2011-06-14]. (原始内容存档于2011-07-23).
外部連結编辑
🔥 Top keywords: Baike: 首页Special:搜索胖猫跳江事件背着善宰跑九龍城寨之圍城逆天奇案2璩静淚之女王歌手2024Energy (組合)新生 (网络剧)习近平匈牙利邊佑錫劉俊謙 (香港)金智媛神耆小子塞尔维亚金秀賢 (男演員)母亲节猩球崛起:王國誕生九龍寨城馴鹿寶貝家族榮耀之繼承者Seventeen (組合)六四事件不夠善良的我們张维为楊佩潔TripleS支配物种庆余年郭葦昀洪若潭命案金惠奫2024年英雄联盟季中邀请赛春色寄情人BABYMONSTER笑看風雲乘風2024排球少年!!角色列表破墓徐巧芯中华人民共和国中華民國打天下2WIND BREAKER—防風少年—习明泽排球少年!!彭丽媛磁暴ILLIT贾斯汀·比伯逆天奇案BOYNEXTDOOR猿人爭霸戰:猩凶革命張書偉我的婆婆怎麼那麼可愛我獨自升級怪獸8號謝坤達IVE (組合)與鳳行關於我轉生變成史萊姆這檔事角色列表黃道十二宮福建號航空母艦虽然不是英雄葉乃文五月天張員瑛草榴社区張文傑2024年花蓮地震极光香緹·摩爾迷宮飯呂家愷搜查班長1958日本劉德華海莉·鮑德溫蕭景鴻越位 (足球)葬送的芙莉蓮周處除三害 (電影)毛泽东願榮光歸香港林峯周雨彤伍允龍羅毓儀香港Baike: 分類索引沒有秘密猩球崛起:終極決戰角質層唐振剛柯佳嬿文化大革命