QWS(Qt Windows System)是QT自行開發(fā)的窗口系統(tǒng),體系結(jié)構(gòu)類似X Windows的C/S結(jié)構(gòu)。QWS Server在物理設(shè)備上顯示,QWS Client實(shí)現(xiàn)界面,兩者通過(guò)socket進(jìn)行彼此的通訊。在很多嵌入式系統(tǒng)里,QT程序基本上都是用QWS來(lái)實(shí)現(xiàn),這樣保證程序的可移植性。
成都創(chuàng)新互聯(lián)公司專業(yè)成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作,集網(wǎng)站策劃、網(wǎng)站設(shè)計(jì)、網(wǎng)站制作于一體,網(wǎng)站seo、網(wǎng)站優(yōu)化、網(wǎng)站營(yíng)銷、軟文平臺(tái)等專業(yè)人才根據(jù)搜索規(guī)律編程設(shè)計(jì),讓網(wǎng)站在運(yùn)行后,在搜索中有好的表現(xiàn),專業(yè)設(shè)計(jì)制作為您帶來(lái)效益的網(wǎng)站!讓網(wǎng)站建設(shè)為您創(chuàng)造效益。在運(yùn)行QT程序時(shí)添加-qws參數(shù),表示這個(gè)程序是QWS Server,否則是QWS Client。任何一個(gè)基于QT的application都可以做QWS Server。QWS Server一定先于QWS Client啟動(dòng),否則QWS Client將啟動(dòng)失敗。在實(shí)際應(yīng)用中一般會(huì)指定某個(gè)特殊的application做QWS Server,這個(gè)application一般還會(huì)管理一些其它的系統(tǒng)資源。
QWS Server管理機(jī)制:QWS Server是一個(gè)server socket,QWS Client是一個(gè)client socket。QWS Client啟動(dòng)時(shí)會(huì)主動(dòng)向QWS Server的server socket建立連接。而后QWS Server通過(guò)這個(gè)socket傳遞QWS Command和QWS Event來(lái)管理QWS Client。
QPA (Qt Platform Abstraction)是QT5的平臺(tái)抽象層,并取代QT4中的QWS和平臺(tái)端口。從QT5開始,QT自身不再單獨(dú)實(shí)現(xiàn)窗口系統(tǒng),QWS不復(fù)存在,取而代之的新機(jī)制是QPA,QPA使得QT對(duì)不同平臺(tái)的支持變得更加靈活,當(dāng)需要支持一個(gè)新平臺(tái)時(shí),只需為該平臺(tái)編寫一個(gè)QPA插件。QPA的相關(guān)代碼分別在qtbase/serc/gui/kernel/qplatform/目錄下,以及平臺(tái)抽象層插件在qtbase/src/plugins/platforms/目錄下。
QT4的程序在嵌入式Linux運(yùn)行時(shí),需要加入?yún)?shù)“-qws”啟動(dòng)QT窗口系統(tǒng)服務(wù),如“./app -qws”運(yùn)行app程序。QT5的程序運(yùn)行時(shí)根據(jù)QT_QPA_PLATFORM變量指定的默認(rèn)QPA插件,運(yùn)行app程序, 也可以根據(jù)需要通過(guò)“-platform”來(lái)指定QPA插件運(yùn)行,如:./app -platform eglfs、./app -platform sylixosfb。
QT作為GUI界面庫(kù),提供了不同功能模塊的編程接口,例如基本控件庫(kù)、數(shù)據(jù)庫(kù)操作、圖表庫(kù)、瀏覽器控件、以及3D模塊。另外QT也提供一種類似HTML解釋性腳本語(yǔ)言QML,并且與JavaScrip腳本的交互,提供了良好的接口操作。程序員可以通過(guò)C++和QML語(yǔ)言開發(fā)應(yīng)用程序。如圖 1.1所示:
圖 1.1 qt應(yīng)用程序示例
通過(guò)圖 1.1客戶端程序分析QT程序初始化流程。一個(gè)客戶端程序創(chuàng)建的時(shí)候,都會(huì)首先創(chuàng)建一個(gè)QApplication app對(duì)象,它為客戶端程序提供必須的運(yùn)行環(huán)境。具體流程如圖 1.2所示:
圖 1.2 QApplication加載流程
QGuiApplication在QT程序初始化中處于重要的地位,它主要初始化父類、解析命令行輸入、初始化窗口的風(fēng)格、初始化QPA、加載QT插件、初始化Gui資源、以及初始化OpenGL上下文環(huán)境。如圖 1.3所示:
圖 1.3 GUI初始化核心階段
在QT5中可以根據(jù)不同系統(tǒng)提供QPA插件,為客戶端程序提供顯示服務(wù),在SylixOS系統(tǒng)下,提供platform/plugin/sylixosfb 平臺(tái)抽象層插件,為QT客戶端程序提供渲染運(yùn)行環(huán)境。如圖 1.4所示:
圖 1.4 創(chuàng)建SylixOS QPA插件
QCoreApplication為客戶端程序提供國(guó)際化支持、以及事件分發(fā)機(jī)制。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
本文題目:QT程序啟動(dòng)加載流程簡(jiǎn)介-創(chuàng)新互聯(lián)
轉(zhuǎn)載來(lái)源:http://muchs.cn/article8/idsip.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、定制網(wǎng)站、網(wǎng)頁(yè)設(shè)計(jì)公司、營(yíng)銷型網(wǎng)站建設(shè)、品牌網(wǎng)站制作、網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容