mygui初探(四)自定義ui控制項

2021-06-22 20:19:19 字數 1977 閱讀 1033

)上班的時候,覺得零散的時間太短,不足以完成業餘作品或者學習某方面知識,希望放到週末去做。到了週末,想睡覺、看電影,就是不想學習,又希望,學習可以在上班空閒的時間進行。人生總是這麼矛盾,充滿了拖延症,這也難怪普通程式設計師很多,大牛級別的人很少。隨著工作年限增加,這種懶惰心理越來越嚴重。為了向大牛看齊,還是得強迫一下自己,開始學習吧。

在mygui中新增自定義型別控制項是比較容易的,大致分成以下幾步:

(1).新增自定義類;

(2).註冊自定義類到widget工廠;

(3).新增自定義類的屬性描述;

(4).給自定義控制項新增乙個預設模板。

下面詳細說明這幾個步驟。

這一步是關鍵步驟,需要你花費的時間最多,但是沒什麼好說的,因為都是你的任務

從widget或其派生類繼承,例如:

class mygui_export gridview : public scrollview

修改myguiengine\src\mygui_widgetmanager.cpp,在void widgetmanager::initialise()函式中註冊自定義類:

factory.registe***ctory(mcategoryname);
修改

media\tools\layouteditor\settings\widgets.xml,追加自定義類的屬性描述。

(1)標籤必須是,name是自定義類的名稱;

(2)property描述了自定義類的基本資訊:基類(base),預設**(defaultskink),**(skin)等;

(3)parameter描述了自定義類的基本屬性,會顯示在ui編輯器的屬性介面上,供我們編輯。

value的型別可以是:字串(string),布林(bool),顏色(colour),檔名稱(filename),n個整數(n int,n可取的值為1、2、4),n個浮點數(n float,n可取的值為1、2)等。所有的型別可以在**tools\layouteditor\propertyfieldmanager.cpp void propertyfieldmanager::initialise()函式中看到。

當然value的型別可以自定義,比如你有乙個列舉型別的引數mystyle,列舉值為(mystylea, mystyleb, mystylec),那麼你就可以用乙個下拉框來表示mystyle的所有取值。

首先,修改media\tools\layouteditor\settings\values.xml,把mystyle的取值描述填進去。

然後,修改 

tools\layouteditor\propertyfieldmanager.cpp,在函式

void propertyfieldmanager::initialise()中追加:

mfactories["mystyle"] = genericfactory::getfactory();
自定義類需要至少指定乙個預設模板(defaultskin),才能出現在ui編輯器的widget面板中,比如修改

media\mygui_media\mygui_bluewhitetemplates.xml,給自定義類新增乙個模板。關於如何寫模板,詳見/article/details/37349313,如下是我的自定義模板:

mygui初探系列的文章,應該可以結束了,後面有時間的話,我想剖析一下mygui的架構。雖然mygui並沒有我想象中那麼好,但這畢竟是一套完整的ui系統,有很多東西可以學習和借鑑,也有很坑可以學會如何去規避。我還想學習一下cegui,在對比中學習兩者的優劣,從更廣的角度去學習ui系統。

如果你準備在你的專案中整合mygui,我的建議是如果沒有好的選擇再考慮它。我不敢向你推薦cegui,但我可以確定的告訴你,不要輕易使用mygui。當然,你如果是學習用途的話,那就隨便折騰吧。

WPF自定義控制項(四) 自定義控制項

原文 wpf自定義控制項 四 自定義控制項 在實際工作中,wpf提供的控制項並不能完全滿足不同的設計需求。這時,需要我們設計自定義控制項。這裡lz總結一些自己的思路,特性如下 下面舉例說說在專案中我們經常用到調音台音量條,寫乙個自定義控制項模擬調音台音量條。自定義控制項singnallight,實現...

VUE(四) 自定義元件

自定義元件用於封裝一些可復用的頁面元件,類似於js模版 又或者模版引擎中的巨集。就像簡訊模版 郵件模版,整體的資訊先定義好,用的時候再把資料填充進去即可。所以,學習vue自定義元件包括 通過components進行元件定義,使用template設定 模版,vue分為全域性元件和部分元件,具體看以下案...

UI002 自定義控制項

ios開發ui基礎 自定義控制項 手寫控制項 frame,center和bounds屬性 一 手寫控制項 1.手寫控制項的步驟 1 使用相應的控制項類建立控制項物件 2 設定該控制項的各種屬性 3 新增控制項到檢視中 父控制項 子控制項 4 如果是button等控制項,還需考慮控制項的單擊事件等 5...