999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于QtDesigner插件機制的二次開發及應用

2019-06-01 10:06:30于凱華李華龍
電腦知識與技術 2019年12期

于凱華 李華龍

摘要:本文簡述了利用QtDesigner插件機制二次開發簡易組態工具,顯示自定義控件及配置控件屬性,完成控件顯示及屬性配置界面。

關鍵詞:Qt;Designer;插件開發

中圖分類號:TP271 文獻標識碼:A

文章編號:1009-3044(2019)12-0293-02

為了快速開發一款簡易組態工具,完成嵌入式儀器設備操作界面組態控制功能,采用基于Qt開發的一款交互式可視化GUI設計開源軟件工具Designer,并根據項目需求,對其控件功能進行二次開發。

采用Qt Designer作為二次開發的工具,主要是因為Qt是一個跨平臺的開源C++圖形用戶界面應用程序開發框架,支持的操作系統包括: Microsoft Windows7,Linux,FreeBSD,BSD/OS等等。而且Qt 具有良好的封裝機制,其模塊化程度非常高,可重用性較好,還提供了豐富的API,對軟件開發來說非常方便。采用的Qt Designer版本是基于Qt4.7.4庫版本開發的。

1前言

Qt Designer基于插件的架構允許用戶自定義和第三方的自定義窗口控件進行編輯,包括控件屬性,控件動作等。但是Qt Designer本身是面向軟件開發人員進行功能界面設計及代碼開發的,并不適用于無軟件開發基礎的工程組態人員,因此進行二次開發,對其控件顯示及屬性配置進行了重新開發及封裝,實現簡易的組態軟件。工程人員利用該組態軟件進行控制邏輯設計及組態,并保存成二進制文件,用于嵌入式儀器設備加載顯示組態界面并進行邏輯操作。

插件二次開發是該組態軟件的重要部分,主要包括以下幾個方面。

2插件接口類實現

Qt Designer提供了插件接口類QDesignerCustomWidgetInterface及加載插件類的方法,為復用其插件加載機制,自定義設計的插件必須繼承于該接口類,保證軟件啟動后可以順利加載自定義開發的插件。接口類中的成員函數描述了部件暴露的各種屬性,其大多數是由基類中的純虛函數提供的。子類需重新實現的函數如下表所示:

3插件控件類實現

Qt Designer軟件中插件的控件類默認繼承于QWidget,其包含了眾多屬性項配置,而絕大多數并不適用于工程組態人員進行配置,工程人員更傾向于使用屬性項配置簡單的組態控件,能滿足工程顯示要求即可。因此對Qt Designer控件進行二次開發,設計繼承于QWidget的控件基類HmiWidget,并設計自定義屬性數據結構HmiProperty,用于存儲自定義控件的屬性項及屬性值。

HmiWidget控件基類主要實現以下功能:

基類HmiWidget中封裝自定義控件的基本屬性,包括控件坐標、長度、寬度、可見性、可用性、偏移位置等信息。繼承于該基類的子控件則實現自定義的屬性,以自定義按鈕控件為例,添加自定義屬性,包括按鈕文本、文本顏色、字體大小、安全級別等等。該設計方案易于擴展控件功能,提高代碼的復用性,避免代碼的重復開發工作;根據不同項目需求,快速完成控件開發。

自定義屬性數據結構HmiProerty用于存儲自定義控件的屬性類型及屬性值,Qt Designer插件加載時獲取控件屬性會強制轉換為QVariant數據結構,QVariant是Qt提供的通用數據類型,支持C++所有的標準數據類型,同樣支持自定義數據類型,為保證自定義數據類型HmiProperty可以被Qt Designer識別,可以通過Qt提供的宏Q_DECLARE_METATYPE()將HmiProperty注冊到QVariant中,保證屬性加載過程中可以識別自定義書記類型。

4自定義屬性加載

Qt Designer加載顯示控件屬性是通過QObject提供的屬性獲取接口函數,獲取控件的所有屬性,不僅包括控件本身的屬性項,同樣包括基類QWidget的屬性項。而實際組態過程中只需顯示工程人員需要配置的屬性項即可,因此對Qt Designer屬性加載過程中的屬性處理機制進行裁剪處理。主要包括兩個部分:

? 對自定義控件進行類型判定,Qt的元對象系統提供了實時類型信息獲取機制,這保證通過Qt提供的函數獲取創建的控件對象的實際對象類型。判斷控件類型是否是繼承于HmiWidget,若是,則證明該控件屬于組態工具要加載的對象,否則直接返回不予處理,避免加載Qt原生的控件對象。

? 自定義控件屬性項加載,同樣借助于Qt元對象系統,獲取自定義控件的屬性項,進行類型判斷,查看屬性項對象是否繼承于HmiProperty,若是,則添加到顯示屬性類表中,否則直接返回,不予處理。最終將控件顯示屬性列表中的屬性項加載到屬性配置窗口中進行顯示。

5結束語

自定義插件創建完成后,運行Qt Designer軟件,顯示控件窗口及屬性配置窗口如下圖所示。

基于Qt Designer插件機制二次開發的簡易組態軟件,滿足工程組態人員組態要求,將工程組態人員組態的畫面最終保存成二進制文件,下裝到嵌入式儀器控制系統中,界面顯示正常,操作動作正確執行,滿足工程要求。

【通聯編輯:梁書】

主站蜘蛛池模板: 91成人在线免费观看| 精品视频一区二区观看| 精品一区二区三区四区五区| 中国精品自拍| 亚洲色图欧美在线| 日本人又色又爽的视频| 日韩av高清无码一区二区三区| 97se亚洲综合在线韩国专区福利| 手机在线免费毛片| 亚洲国内精品自在自线官| 国产欧美高清| 日韩精品亚洲精品第一页| 国产精品午夜福利麻豆| 国产幂在线无码精品| 久久国产精品无码hdav| 国产91小视频| 91精品国产情侣高潮露脸| 强奷白丝美女在线观看| 97综合久久| 夜精品a一区二区三区| 漂亮人妻被中出中文字幕久久| 污网站在线观看视频| 日a本亚洲中文在线观看| 国产麻豆精品在线观看| 国产黄网永久免费| 欧美日韩一区二区三区四区在线观看 | 在线a视频免费观看| 91青青视频| 欧洲日本亚洲中文字幕| 免费在线一区| 国产精品白浆无码流出在线看| 2020精品极品国产色在线观看| 国产成人高清精品免费软件| 久久福利网| 亚洲欧美自拍中文| 美女毛片在线| 日韩精品中文字幕一区三区| 欧美色伊人| 亚洲人成在线精品| 欧美人与动牲交a欧美精品| 最新国产你懂的在线网址| 不卡无码h在线观看| 精品一区二区无码av| 精品三级网站| 欧洲成人免费视频| 国产美女免费网站| 午夜视频日本| 日韩 欧美 小说 综合网 另类| 毛片一级在线| 最新国产麻豆aⅴ精品无| 欧美色视频在线| 亚洲一区二区日韩欧美gif| 亚洲无码91视频| 在线播放国产99re| 国产综合欧美| …亚洲 欧洲 另类 春色| 亚洲AV免费一区二区三区| 九九这里只有精品视频| 国产农村精品一级毛片视频| 亚洲一道AV无码午夜福利| 91美女视频在线观看| 999精品免费视频| 97国产在线播放| 久久精品亚洲中文字幕乱码| 在线视频一区二区三区不卡| 精品人妻一区无码视频| 亚卅精品无码久久毛片乌克兰| 精品视频在线一区| 三级毛片在线播放| 欧美中文字幕在线视频| 成人在线观看一区| 久久99国产精品成人欧美| 好吊色妇女免费视频免费| 丝袜国产一区| 91免费观看视频| 波多野结衣一区二区三区88| 四虎影视8848永久精品| 免费一级无码在线网站| 日韩视频福利| 波多野结衣的av一区二区三区| 欧美国产日韩在线| 国产精品三级专区|