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

一種組態控件技術在電力監控系統中的運用

2022-01-07 12:52:28
電視技術 2021年11期
關鍵詞:按鈕

陳 誠

(江蘇斯菲爾電氣股份有限公司,江蘇 江陰 214400)

0 引言

目前市面上多數電力監控軟件都提供了豐富的基礎圖元和符合電力系統符號標準的電氣圖元供現場施工人員繪制電力監控系統組態圖,但是在非電氣類復雜圖元的提供上各有特色,操作方式和繪制復雜程度也各不相同。電力監控軟件中,除高低壓一次系統圖包含大量電氣圖元外,更多的顯示界面需要非電氣類復雜圖元來顯示現場的設備運行情況,用于給運維人員提示,使其能夠更好地查看了解現場系統運行狀態。因此非電氣類圖元實現的好壞、操作的難易程度,對提升公司電力監控軟件產品的競爭力有很大幫助。

Qt 作為源碼級跨平臺C++圖形用戶界面應用程序開發框架,被很多企業用于開發GUI 程序。其包含的GraphicsView 框架[1]結構主要包含視圖類、場景類及圖元類這3 個類,圖形視圖框架實現了模型-視圖結構的圖形管理,能對大量圖元進行管理,支持碰撞檢測,具有坐標變換、圖元組合解組等多種方便的功能。其中,圖形視圖框架的QGraphicsProxyWidget 類為嵌入任何組件到場景提供了無縫支持,可嵌入簡單的組件、復雜圖元甚至是窗口。

采用Qt 圖形視圖框架的QGraphicsProxyWidget類可以深度整合電力監控軟件中圖元或控件特性,將多個圖元、控件甚至是窗口組合成一個新的圖元提供給用戶使用[2]。這樣可以很大程度上簡化繪制組態圖形的難度和步驟,降低用戶的入門門檻,加快電力監控項目的實施。

1 窗口圖元類

Qt 作為源碼級跨平臺的圖形用戶界面開發框架,非常適合有跨平臺需求的電力監控軟件開發,其QGraphicsProxyWidget 類是繼承圖元基類QGraphicsItem 的,而圖元基類是抽象類,因此在子類中必須實現下面兩個虛函數才能使用。

(1)boundingRect 函數。返回繪制圖元的矩形邊界,當需要圖元接收到的操作事件時,這些事件只能發生在這個返回的矩形區域當中才會被接收到。

(2)paint 函數。使用QPainter 類繪制項目中一個具體的圖元的內容。

將電力監控的軟件組態圖元分為基礎圖元、電氣圖元及窗口圖元,它們關聯的數據和表現形式不同,因此組態圖元在程序設計時被分為兩大類。基礎圖元和電氣圖元以QGraphicsItem 為父類,圖元內容簡單,以繪制基礎圖形和符合標準電氣符號的電氣圖形為主。窗口圖元則以QGraphicsProxyWidget為父類,圖元內容復雜,可以包含Qt 提供的窗口控件或自定義復雜窗口。兩類圖元繪制的方式、操作方式是一致的,為了函數復用、簡化編程、保證程序結構清晰,采用模板類。程序實現如下。

模板類沒有實例化boundingRect 函數和paint函數,模板類還是純虛類。其包含了兩類圖元的共有屬性和方法,其中方法中定義多個虛函數,以方便子類重載實現多態性。

父類窗口圖元繼承于模板類,作為所有具有實際功能的子窗口圖元的父類,其類型為QGraphicsProxyWidget 類,并包含所有窗口圖元的公共屬性和方法。

父類窗口圖元實例化boundingRect 函數和paint 函數,其中boundingRect 函數返回繪制窗口的矩形范圍,該矩形由圖元保存記錄。paint 函數必須實時計算當前窗口的尺寸,否則整個窗口圖元不響應操作,只會呈現為默認大小狀態[3]。具體實現如下所示:首先通過subWidgetRect 函數獲取窗口圖元的子窗口的大小,獲取子窗口矩形后通過bottomRight 函數計算出右下角點的位置,如果當前窗口圖元的子窗口的大小與窗口圖元記錄的矩形大小相比較超出設定的像素門檻,則重新計算子窗口的大小;其次,將其通過mapRectToScene 函數轉換到場景類的坐標系中;最后通過setGeometry 函數重新設置窗口圖元幾何形狀。這樣就可以實現窗口圖元保持用戶拉伸操作后需要的大小。具體程序實現如下。

窗口圖元同樣需要對點擊、移動、釋放、雙擊等事件函數進行重載,否則圖元將不會響應鼠標在場景中的操作事件。需要實現的函數如下:

因為QGraphicsProxyWidget 類最終繼承于QGraphicsItem 類,所以事件重載函數需要調用QGraphicsItem 類對應的默認事件函數,否則窗口圖元同樣不會響應對應的事件操作。例如釋放事件函數中最后需要加上下面的函數:

窗口圖元在圖片組態軟件中繪制時的情況如圖1 所示。從控件欄中選取需要的窗口控件,放置、拖拽拉伸后即可顯示出相應圖元的內容。窗口圖元上有8 個方向控制方框,點擊選中后按著鼠標可以向對應的方向拉伸,直到拖拽到需要的大小,同時最右側的屬性欄會實時顯示出當前窗口圖元的最新大小、坐標、角度等信息。

圖1 窗口圖元繪制

2 子圖元窗口

父類窗口圖元實現了圖元的操作響應和幾何形狀計算,具體的樣式和功能則需要通過繼承的子類來實現。子類窗口圖元有兩種實現方式,一種是直接使用Qt 默認提供的一系列窗口控件,另一種是自己實現新的窗口控件。

Qt 提供了豐富的窗口控件,但是想直接在場景中調用顯示Qt 的窗口控件是無法實現的,而通過窗口圖元則可以直接使用Qt 提供的窗口控件,并且對應的窗口圖元將具備控件本身的屬性和相關操作,大大簡化了編程工作量[4]。以創建按鈕窗口圖元為例,在構造函數中新建按鈕控件,然后調用setWidget 函數將按鈕控件嵌入,則繪制時對應的窗口圖元就顯示為按鈕,此時操作按鈕窗口圖元就和正常使用Qt 提供的按鈕控件沒有區別,具有控件所擁有的操作和屬性。

窗口默認情況下是提供邊框和標題欄的,這樣窗口圖元看起來更像一個單獨的窗口,為了讓窗口圖元呈現為與電氣圖元一樣的外框以方便統一操作,需要將窗口圖元的屬性設置為Qt::FramelessWindowHint 無 邊 框 窗 口,通 過setWindowFlags 函數進行設置。

Qt 提供的控件只能實現一些基礎的窗口功能,如果想實現更復雜的窗口則需要自己編寫新控件并嵌入到窗口圖元。如果有需要,甚至可以將完整的窗口嵌入到窗口圖元中以作為單一圖元提供。如圖1 所示,事件窗口圖元包含了按鈕、下拉框、表格等等控件,這里是將整個事件窗口包含在一個圖元中。在繪制事件窗口時可以直接調用,無需施工人員再自己組合。同時,如果復雜控件中包含需要實時刷新的數據就必須重載paint 函數,并在函數中實現數據刷新函數,否則窗口圖元是不會實時刷新控件上的內容的。

主要由窗口圖元繪制的報表監控界面如圖2 所示,界面中時間對話框、單選框、按鈕都是直接使用Qt 提供的控件構成的窗口圖元,它們可以使用控件本身的屬性來實現各種操作[5]。表格是自定義的報表窗口圖元,可以設置表格的樣式并且自動地實時刷新報表中的數據。

圖2 窗口控件組成的界面

3 結語

本文方法最終應用在江蘇斯菲爾電氣股份有限公司新開發的電力監控軟件中,實現了圖片組態軟件中窗口圖元的設計、編程及應用。該方法提供了大量復雜圖元和控件,這些圖元和控件為用戶提供了成熟的繪制方案,無需用戶自己組合拼接,降低了用戶的入門門檻,可以方便用戶快速掌握,減少培訓成本,從而加快項目的實施,進一步減少時間成本和人力成本。

猜你喜歡
按鈕
這些按鈕能隨便按嗎?
哪個是門鈴真正的按鈕
當你面前有個按鈕
門鈴按鈕
電動牙刷電源按鈕注射模設計
模具制造(2019年7期)2019-09-25 07:30:00
死循環
內心不能碰的按鈕
商業評論(2014年9期)2015-02-28 04:32:41
青于藍~高考語文核按鈕系列出版書目
中學語文(2013年35期)2013-11-14 03:29:12
沒Gmail按鈕 咱自己加等
移動一族(2008年9期)2008-12-31 00:00:00
全新黑洞與天才按鈕
看世界(2004年9期)2004-04-29 00:00:00
主站蜘蛛池模板: 亚洲欧洲日产国码无码av喷潮| aa级毛片毛片免费观看久| 日韩欧美国产另类| 欧美一级黄色影院| 久热中文字幕在线| 992Tv视频国产精品| 国产成人91精品| 亚洲天堂网视频| 日韩麻豆小视频| 婷婷伊人久久| 欧美成人怡春院在线激情| 91久久偷偷做嫩草影院电| 亚洲天堂网视频| 国产原创自拍不卡第一页| 毛片免费高清免费| 亚洲一级毛片| 国产性生大片免费观看性欧美| 午夜国产大片免费观看| 欧美国产中文| 四虎国产成人免费观看| 免费又黄又爽又猛大片午夜| 欧美亚洲日韩中文| 欧美日韩第三页| 天天综合色网| 国产在线八区| av在线手机播放| 欧美一区二区精品久久久| 欧美自拍另类欧美综合图区| 国产一区二区精品福利| 国产精品白浆在线播放| 国产产在线精品亚洲aavv| 国产幂在线无码精品| 国产尤物视频在线| 日韩精品成人在线| 久久久久夜色精品波多野结衣| 在线观看亚洲精品福利片| 国产午夜精品一区二区三| 97人人模人人爽人人喊小说| 亚洲综合极品香蕉久久网| 国产福利免费在线观看| 国产成人精品视频一区视频二区| 国产在线日本| 国产微拍一区二区三区四区| 国产69精品久久久久孕妇大杂乱 | 欧美成人精品一区二区| 亚洲一区精品视频在线| 女同国产精品一区二区| 欧美日韩一区二区三区四区在线观看| 精品一区二区三区无码视频无码| 亚洲AV无码久久精品色欲| 亚洲欧美日韩中文字幕在线| 久久亚洲中文字幕精品一区 | 中文一区二区视频| 国产在线视频自拍| 五月天在线网站| 亚洲无线视频| 青草视频在线观看国产| 91网址在线播放| 黄色网址免费在线| 人妻精品全国免费视频| 大香伊人久久| 五月激情婷婷综合| 国产成人喷潮在线观看| 免费看美女自慰的网站| 欧美a在线视频| 亚洲日本在线免费观看| 啪啪免费视频一区二区| 97国产精品视频自在拍| 秋霞国产在线| 久久精品最新免费国产成人| 国产一区二区三区精品久久呦| 97国产一区二区精品久久呦| 国产美女91呻吟求| 国产凹凸视频在线观看| 国产午夜精品鲁丝片| 国产99视频在线| 天堂va亚洲va欧美va国产| 久草视频福利在线观看| 国产欧美专区在线观看| 亚洲人网站| 狠狠色丁香婷婷| 亚洲va在线观看|