好久沒動duilib 了==
duilib 自帶的預設屬性,思想是不錯的,但都知道比較難用,一不小心就所有替換,還來個莫名其妙。
<?xml version="1.0" encoding="utf-8"?>
size="800,572"
sizebox="4,4,6,6"
roundcorner="5,5"
caption="0,0,0,90"
mininfo="800,570">
name="vscrollbar"
value="..."/>
name="hscrollbar"
value="..."/>
bkcolor="#ffd1e8f5"
bkcolor2="#ffc6e0f1"
bordercolor="#ff768d9b"
bordersize="1"
borderround="5,5">
height="24"/>
bkcolor="0xff00ff00"
hscrollbar="true"
vscrollbar="true">
name="my_btn"
pos="40,40,0, 0"
text="my_btn" />
name="my_btn2"
pos="40,80,0, 0"
text="my_btn2" />
name="my_btn3"
pos="40,120,0, 0"
text="my_btn3"/>
name="my_btn4"
pos="40,160,0, 0"
text="my_btn4"/>
horizontallayout>
verticallayout>
window>
效果是這樣的
但是我想要整體效果,這麼多button,就用default吧,在xml新增如下
"button"
value="float="true" height="25" width="60" bkcolor="#fff0f0f0" borderround="5,5" normalimage="button_nor.bmp" hotimage="button_down.bmp" focusedimage="button_over.bmp" "/>
但是看到的效果是
影響到了 標題欄 button 出現異常,收到default 影響,
於是就想,為啥不搞的自由點?
哈哈,,,
自己定義個屬性列表屬性
<?xml version="1.0" encoding="utf-8"?>
size="800,572"
sizebox="4,4,6,6"
roundcorner="5,5"
caption="0,0,0,90"
mininfo="800,570">
name="vscrollbar"
value="..."/>
name="hscrollbar"
value="..."/>
name="button_default"
value="..."/>
bkcolor="#ffd1e8f5"
bkcolor2="#ffc6e0f1"
bordercolor="#ff768d9b"
bordersize="1"
borderround="5,5">
height="24"/>
bkcolor="0xff00ff00"
hscrollbar="true"
vscrollbar="true">
name="my_btn"
pos="40,40,0, 0"
text="my_btn"
attributelist="button_default"/>
name="my_btn2"
pos="40,80,0, 0"
text="my_btn2"
attributelist="button_default" />
name="my_btn3"
pos="40,120,0, 0"
text="my_btn3"
attributelist="button_default"/>
name="my_btn4"
pos="40,160,0, 0"
text="my_btn4"
attributelist="button_default"/>
horizontallayout>
verticallayout>
window>
對應的在每個 button 新增屬性 attributelist=」button_default」 就可以使用上面的 ,
剩下的搞定 **就ok。
1、在解析default的地方 新增乙個 解析attributelist的預設屬性
else
if (_tcsicmp(pstrclass, _t("attributelist")) == 0)
else
if (_tcsicmp(pstrname, _t("value")) == 0)
else
if (_tcsicmp(pstrname, _t("shared")) == 0)
}if (pcontrolname)
}
2、防止再次解析
ccontrolui* cdialogbuilder::_parse(cmarkupnode* proot, ccontrolui* pparent, cpaintmanagerui* pmanager)
}else}}
看下效果
DuiLib實現自定義控制項
在duilib中實現自定義控制項,和qt過載類似,也是繼承原有的控制項只不過是要將這個控制項也能在xml中進行使用。當作xml中的乙個節點。下面就看一下我寫的乙個小例子,這個例子是過載了乙個按鈕 cbuttonui 過載cbuttonui的標頭檔案 subcontrol.h ifndef subco...
自定義列表
自定義列表不僅僅是一列專案,而是專案及其注釋的組合。自定義列表以 標籤開始。每個自定義列表項以 開始。每個自定義列表項的定義以 開始。娛樂明星 港台東南亞明星 內地明星 南韓明星 日本明星 時尚人物 愛綜藝內地綜藝 台灣綜藝 南韓綜藝 時尚生活服務 體育運動健身 追劇狂南韓電視劇集 香港電視劇集美劇...
Duilib建立新增自定義控制項
本篇參考資料 duilib自定義控制項博文 duilib開發基礎 建立自定義控制項的過程 duilib是乙個強大的c 介面庫,相比mfc,它對於程式設計師來說更加友好。不僅易懂易學,做出的介面效果還比較美觀。據悉,現在市面上很多桌面應用都是直接或間接地基於duilib來製作的。這篇博文主要介紹如何把...