翻譯|使用教程|編輯:鮑佳佳|2020-09-15 10:11:03.180|閱讀 289 次
概述:應用程序管理器被編譯為一個獨立的可執行文件,可以通過基于YAML的配置文件系統和啟動插件在很大程度上進行配置。但是,如果您需要對應用程序的啟動行為進行更多控制,則可能有必要實現自定義應用程序管理器可執行文件。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
Qt(發音為“ cute”,而不是“ cu-tee”)是一個跨平臺框架,通常用作圖形工具包,它不僅創建CLI應用程序中也非常有用。而且它也可以在三種主要的臺式機操作系統以及移動操作系統(如Symbian,Nokia Belle,Meego Harmattan,MeeGo或BB10)以及嵌入式設備,Android(Necessitas)和iOS的端口上運行?,F在我們為你提供了免費的試用版。趕快點擊下載Qt最新試用版吧>>
實施自定義應用程序管理器示例提供定制應用程序管理器可執行文件的基本結構和起點。
介紹
應用程序管理器被編譯為一個獨立的可執行文件,可以通過基于YAML的配置文件系統和啟動插件在很大程度上進行配置。但是,如果您需要對應用程序的啟動行為進行更多控制,則可能有必要實現自定義應用程序管理器可執行文件。
注意:目前,應用程序管理器模塊中的所有C ++類都被視為私有API,因此根本沒有兼容性保證。
如果仍然需要此行為,則此示例提供了一個起點,您可以在此基礎上構建自定義實現。請記住,此自定義應用程序管理器可執行文件需要系統UI才能在屏幕上顯示某些內容,就像標準appman可執行文件一樣。
以下是必需的代碼的細分:
#include#include #include #include #include #include QT_USE_NAMESPACE_AM
應用程序管理器分為功能性構建塊。這些include語句引入了所需的基本類集。為了避免與QML插件發生沖突,所有應用程序管理器的符號都命名為名稱空間- QT_USE_NAMESPACE_AM擴展為等效using語句。
QCoreApplication::setApplicationName(qSL("Custom Application Manager")); QCoreApplication::setApplicationVersion(qSL("0.1"));
通常我們會選擇設置應用程序名稱和版本。
Logging::initialize(argc, argv);
我們希望應用程序管理器的日志記錄部分盡早初始化,尤其是在處理DLT日志記錄時。
Sudo::forkServer(Sudo::DropPrivilegesPermanently);
同樣,僅對于安裝程序部分,在運行QApplication構造函數之前,需要執行附加的設置步驟:如果可執行文件為setuid-root,則此調用將fork關閉子進程,該子進程將保留root特權,而主進程將永久刪除它們。
try { Main a(argc, argv); Configuration cfg; cfg.parse(); a.setup(&cfg); a.loadQml(cfg(cfg.loadDummyData());()); a.showWindow(cfg(cfg.fullscreen() () && !cfg.noFullscreen());()); return MainBaseMainBase::exec();(); } } catch ((const std::exception &e) {) { qCCritical(LogSystem) (LogSystem) << "ERROR:" << e.what(); (); return 2; }}
try模塊塊是定制應用程序管理器的核心。您需要創建一個Main對象,該對象是從QGuiApplication派生的類,再加上一個合適的配置對象。在這種簡單情況下,我們使用應用程序管理器的默認YAML解析,因此我們實例化了一個DefaultConfiguration對象。該功能的其余部分涉及解析配置,然后在Main對象上調用相關的設置例程。
根據您的應用程序管理器的配置,Main對象的派生方式可以不同:無頭,帶小部件或標準,因此,您需要知道exec()調用的正確基類。但是,MainBasetypedef可以解決此問題。
應用程序管理器中的大多數功能都能拋出除非std::exception異常,因此catch處理程序是強制性的。
本篇文章中的內容你都學會了嗎?如果這篇文章沒能滿足你的需求、點擊獲取更多文章教程!現在立刻下載Qt免費試用吧!更多Qt類開發工具QtitanRibbon、QtitanChart、QtitanNavigation、QtitanDocking、QtitanDataGrid在線訂購現直降1000元,歡迎咨詢慧都獲取更多優惠>>
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自: