AWTK是基于C語言開發的跨平臺GUI框架?!禔WTK使用經驗》系列文章將介紹開發AWTK過程中一些常見問題與解決方案,例如:如何加載外部資源?如何設計自定義進度條?這些都會在系列文章進行解答。
假設需要在 ZTP800示教器 實現一個用于日期選擇的下拉框,并且還要求對下拉框做一些美化,此時就需要用戶自定義下拉框樣式。下面將結合該需求介紹兩種修改combo_box下拉框樣式的方法。
利用theme_of_popup屬性修改樣式
第一種方式是通過combo_box的theme_of_popup屬性修改下拉框樣式,該屬性需要指定一個樣式文件名稱,combo_box控件會應用該文件內的下拉框樣式。
?
圖2使用theme_of_popup屬性修改下拉框樣式在項目的design/default/styles目錄下創建一個xml文件作為下拉框的樣式文件,并配置以下兩個樣式:1. 彈出窗口本身的樣式,style名稱為“combobox_popup”。
"combobox_popup" bg_color="#071F4B" border_color="#00000000">
2. 列表項的樣式,style名稱為“default”。
"default" bg_color="#071F4B" font_size="24" icon_at="left" text_color="#FFFFFF">
最后可以在AWTK Designer中設置combo_box控件的theme_of_popup屬性并打包資源文件,另外也可以使用C代碼方式動態設置樣式:
combo_box_set_theme_of_popup(combo_box, "my_combo_box");
利用open_window屬性修改樣式
第二種方式是通過修改combo_box控件的open_window屬性修改下拉框樣式,該屬性接收一個popup窗體的名稱,用戶在popup實現自定義下拉框。若同時設置了options屬性與open_window屬性,會優先打開open_window屬性的popup窗體。
圖3使用open_window屬性修改下拉框樣式
1. combo_box控件open_window屬性用法
在AWTK Designer創建一個popup類型窗體并進行布局,使用combo_box_item控件作為下拉框選項。
完成popup窗體布局后,可以在AWTK Designer中設置combo_box控件的open_window屬性,也可以使用C代碼方式動態設置樣式:
combo_box_set_open_window(combo_box, "combo_box_menu");
2. 獲取與設置combo_box當前選擇項索引值
默認的combo_box控件可以通過控件對象的selected_index屬性直接讀取當前選擇項的索引值,也可通過控件函數combo_box_set_selected_index設置當前選擇項索引值。
需要注意的是設置open_window屬性后還要設置相同的options屬性才可以正常獲取與設置當前選項索引值。例如在open_window打開的popup三個選項分別為“星期一”、“星期二”和“星期三”,則需要設置combo_box控件options屬性為“0:星期一;1:星期二;2:星期三”,這樣才能通過控件對象屬性和控件函數獲取與設置當前選項的索引值。
-
C語言
+關注
關注
180文章
7604瀏覽量
136694 -
示教器
+關注
關注
2文章
29瀏覽量
3751 -
awtk
+關注
關注
0文章
44瀏覽量
226
發布評論請先 登錄
相關推薦
評論