一、前言 上一篇文章負責把設計好的控件數據導出到了xml文件,本偏文章負責把導出的xml數據文件導入,然后在畫布上自動生成對應的控件,Qt內置的xml數據解析功能,非常強大,都封裝在QtXml組件中,Qt有個好處就是,封裝了眾多的各大操作系統平台的功能,尤其是GUI控件,不愧是超大型一站式GUI ...
一 前言 能夠導出控件布局和屬性設置數據到xml文件或者其他文件,也是一個非常實用的功能,類似於QtDesigner中把頁面設計好以后生成的.ui結尾的文件,其實就是xml文件,按照約定的規則存儲好控件名稱和屬性名稱及對應的屬性值,然后打開的時候按照這個規則取出來就行了。每個控件還有固定的幾個數據需要存儲,比如XY軸和對應的寬度高度,然后在xml數據文件的最開始還可以存儲整個畫布的寬度高度以便其他 ...
2019-09-13 10:10 0 363 推薦指數:
一、前言 上一篇文章負責把設計好的控件數據導出到了xml文件,本偏文章負責把導出的xml數據文件導入,然后在畫布上自動生成對應的控件,Qt內置的xml數據解析功能,非常強大,都封裝在QtXml組件中,Qt有個好處就是,封裝了眾多的各大操作系統平台的功能,尤其是GUI控件,不愧是超大型一站式GUI ...
一、前言 自從研究Qt編寫自定義控件以來,一發不可收拾,越多越多人有類似的需求找我定制控件,陸陸續續寫了上百個控件,目前已超過150個,於是逐漸衍生了另外一個需求,提供一個控件屬性設計器,類似QtDesigner一樣,可以方便的拖曳控件,改變屬性,立即應用,並導出到文件方便下次直接加載,這個設計 ...
一、前言 插件控件加載了,拖曳控件也實現了,接下來就是一個最難點了,跟QtDesigner或者其他開發環境一樣,能夠任意自由的拉伸控件大小,移動位置,為了這個功能,還特別編寫了一個控件來實現這個功能,名字叫SelectWidget描點跟隨窗體控件,大致的原理就是安裝事件過濾器,在生成控件 ...
一、前言 上一篇文章把插件加載好了,並且把插件中的所有控件都顯示到了列表框中,這次要做的就是實現拖曳控件的功能,用戶選擇一個控件拖曳到畫布上,松開,在松開位置處自動實例化該控件,這個需要用到dropEvent和dragEnterEvent事件,重新實現這兩個事件,對拖曳的對象進行過濾並調用函數 ...
一、前言 控件能加載拖曳拉伸了,這些都是基本的前提工作,接下來的重點就是要動態加載選中控件的屬性了,Qt的屬性機制那是異常的強大,只能用強大到爆來形容,Qt中編寫自定義控件,如果屬性都用Q_PROPERTY來描述過,那都支持整個Qt生態環境中的各種應用場景的加載,比如widget的屬性設計 ...
一、前言 在上一篇文章中就提到過,使用qtpropertybrowser來加載屬性,對應加載到的屬性是英文的,也就是控件類中Q_PROPERTY描述的變量名稱,如何變成中文或者其他語言顯示呢?這個就需要研究qtpropertybrowser的源碼了,通過研究發現 ...
一、前言 用戶屬性是后面新增加的一個功能,自定義控件如果采用的Q_PROPERTY修飾的屬性,會自動識別到屬性欄中,這個一般稱為控件屬性,在組態設計軟件中,光有控件本身的控件屬性還是不夠的,畢竟這些屬性僅僅是以外觀為主,並不能表示某個設備的屬性,所以需要除了這個控件屬性以外增加用戶屬性來存儲 ...
一、前言 之前就提過,Qt的屬性機制強大到爆,這次的動態屬性功能就是要讓他爆,很難想象只要一行代碼即可widget->setProperty("value", value);沒錯就這么簡單,調用弱屬性機制,可以直接控制控件中的所有屬性,設計這個機制的人絕對是天才,直接跪了。至於具體底層 ...