翻譯|使用教程|編輯:鮑佳佳|2020-09-10 14:07:42.167|閱讀 606 次
概述:本示例以一種簡單的方式展示了應(yīng)用程序管理器API,它是具有服務(wù)器端窗口裝飾的經(jīng)典桌面。該示例更多地關(guān)注概念,而不關(guān)注優(yōu)雅或完整性。例如,沒有錯誤檢查完成。此最小桌面系統(tǒng)中的某些功能僅打印調(diào)試消息。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
Qt(發(fā)音為“ cute”,而不是“ cu-tee”)是一個跨平臺框架,通常用作圖形工具包,它不僅創(chuàng)建CLI應(yīng)用程序中也非常有用。而且它也可以在三種主要的臺式機操作系統(tǒng)以及移動操作系統(tǒng)(如Symbian,Nokia Belle,Meego Harmattan,MeeGo或BB10)以及嵌入式設(shè)備,Android(Necessitas)和iOS的端口上運行。現(xiàn)在我們?yōu)槟闾峁┝嗣赓M的試用版。趕快點擊下載Qt最新試用版吧>>
桌面系統(tǒng)用戶界面示例
本示例以一種簡單的方式展示了應(yīng)用程序管理器API,它是具有服務(wù)器端窗口裝飾的經(jīng)典桌面。該示例更多地關(guān)注概念,而不關(guān)注優(yōu)雅或完整性。例如,沒有錯誤檢查完成。此最小桌面系統(tǒng)中的某些功能僅打印調(diào)試消息。
支持以下功能:
注意:此示例可以在單進程或多進程模式下運行。在下面的演練中,我們使用多進程及其相應(yīng)的術(shù)語。術(shù)語客戶和應(yīng)用 ; 服務(wù)器和系統(tǒng)UI可以互換使用。系統(tǒng)UI包括合成和通用的進程間通信(IPC)。
要開始示例,請導(dǎo)航到該minidesk文件夾,然后運行以下命令:
-c am-config.yaml
該appman二進制文件(可執(zhí)行文件),通常位于Qt的安裝bin文件夾中。
系統(tǒng)界面窗口
import QtQuick 2.11 import QtQuick.Window 2.11 import QtApplicationManager.SystemUI 2.0 Window { title: "Minidesk - QtApplicationManager Example" width: 1024 height: 640 color: "whitesmoke" Readme {} Text { anchors.bottom: parent.bottom text: (ApplicationManager.singleProcess ? "Single" : "Multi") + "-Process Mode" } ...
該QtApplicationManager.SystemUI模塊需要導(dǎo)入來訪問應(yīng)用程序管理器的API。系統(tǒng)UI窗口具有固定的大小和“ whitesmoke”背景色。除了Window之外,root元素還可以是常規(guī)項目,例如Rectangle。應(yīng)用程序管理器會為您將其包裝在一個窗口中。在背景頂部,我們顯示一個Readme元素,其中包含有關(guān)可用功能的信息。左下角有一個文本指示,指示應(yīng)用程序管理器是在單進程模式還是多進程模式下運行。
// Application launcher panel Column { Repeater { model: ApplicationManager Image { source: icon opacity: isRunning ? 0.3 : 1.0 MouseArea { anchors.fill: parent onClicked: isRunning ? application.stop() : application.start("documentUrl"); } } } }
中繼器提供了設(shè)置在一個應(yīng)用程序圖標(biāo)列在系統(tǒng)UI的左上角; 所述ApplicationManager元件是模型。其中,ApplicationManager提供了icon用作圖像源URL 的角色。該iconURL是在應(yīng)用程序的定義info.yaml文件。為了指示應(yīng)用程序已啟動,通過將其綁定到isRunning角色來減少相應(yīng)應(yīng)用程序圖標(biāo)的不透明度。
單擊應(yīng)用程序圖標(biāo)可通過調(diào)用ApplicationObject.start()啟動相應(yīng)的應(yīng)用程序。可通過ApplicationManager模型中的application角色訪問此功能。這兩個應(yīng)用程序均以(可選)文檔URL開頭(documentUrl)。如果應(yīng)用程序已經(jīng)在運行,則調(diào)用ApplicationObject.stop()。
Windows系統(tǒng)界面中的應(yīng)用程序
// System UI chrome for applications Repeater { model: ListModel { id: topLevelWindowsModel } delegate: Image { source: "chrome-bg.png" z: model.index Text { anchors.horizontalCenter: parent.horizontalCenter text: "Decoration: " + (model.window.application ? model.window.application.name("en") : 'External Application') } MouseArea { anchors.fill: parent drag.target: parent onPressed: topLevelWindowsModel.move(model.index, topLevelWindowsModel.count - 1, 1); } Rectangle { width: 25; height: 25 color: "chocolate" MouseArea { anchors.fill: parent onClicked: model.window.close(); } } WindowItem { anchors.fill: parent anchors.margins: 3 anchors.topMargin: 25 window: model.window Connections { target: window function onContentStateChanged() { if (window.contentState === WindowObject.NoSurface) topLevelWindowsModel.remove(model.index, 1); } } } Component.onCompleted: { x = 300 + model.index * 50; y = 10 + model.index * 30; } } }
該模型是一個普通的ListModel ,它由WindowManager創(chuàng)建的窗口對象所提供。下面顯示了填充此ListModel的窗口角色的代碼。現(xiàn)在,讓我們集中討論此Repeater的代表包括什么:
未完待續(xù).......下一篇文章我們將發(fā)布完整版代碼!
本篇文章中的內(nèi)容你都學(xué)會了嗎?如果這篇文章沒能滿足你的需求、點擊獲取更多文章教程!現(xiàn)在立刻下載Qt免費試用吧!更多Qt類開發(fā)工具QtitanRibbon、QtitanChart、QtitanNavigation、QtitanDocking、QtitanDataGrid在線訂購現(xiàn)直降1000元,歡迎咨詢慧都獲取更多優(yōu)惠>>
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自: