用GtkTreeView實現ListBox的示例

2021-04-09 02:36:27 字數 3271 閱讀 1309

gtktreeview

實現listbox示例

前段時間花了不少時間去研究

gtk+

的架構,但沒有怎麼關注具體控制項的使用。大部控制項都有示例**,相信使用不會很難。今天要測試一下用

gtktreeview

實現listbox

,發現沒有

gtktreeview

的示例**,

gtk+

的tutorial

裡也沒有講解。只好自己折騰,結果花了兩個小時才搞定,寫段**做個備忘吧。

gtkwidget*

create_window1

(void

)

;

inti

= 0 ;

intn

= 100;

window1

= gtk_window_new (gtk_window_toplevel);

gtk_window_set_title (gtk_window (

window1

), _(

"window1"

));

scrolledwindow1

= gtk_scrolled_window_new (

null

, null

);

gtk_widget_show (

scrolledwindow1

);

gtk_container_add (gtk_container (

window1

), scrolledwindow1

);

gtk_scrolled_window_set_shadow_type (gtk_scrolled_window (

scrolledwindow1

), gtk_shadow_in);

treeview1

= gtk_tree_view_new ();

column

= gtk_tree_view_column_new();

treeview1

), column

);

cell

= gtk_cell_renderer_text_new();

gtk_tree_view_column_pack_start(

column

, cell

, true

);

gtk_tree_view_column_set_attributes(

column

, cell

, "text"

, 0,

null

);

column

= gtk_tree_view_column_new();

treeview1

), column

);

store

= gtk_list_store_new(1, g_type_string);

gtk_tree_view_set_model(

treeview1

, gtk_tree_model(

store

));

for(i

= 0;

i< n;

i++)

gtk_widget_show (

treeview1

);

gtk_container_add (gtk_container (

scrolledwindow1

), treeview1

);

/* store pointers to all widgets, for use by lookup_widget(). */

glade_hookup_object_no_ref (

window1

, window1

, "window1"

);

glade_hookup_object (

window1

, scrolledwindow1

, "scrolledwindow1"

);

glade_hookup_object (

window1

, treeview1

, "treeview1"

);

return

window1

; }

2006-11-12

補充:得到選中項的內容:

void

on_button1_clicked(gpointer user_data, gtkbutton*button)

;

gtktreeiter

iter

= ;

gtktreestore*

store

= null

;

gtktreeselection* selection =

null

;

gtktreeview* treeview=

null

;

treeview = (gtktreeview*)lookup_widget(gtk_widget(user_data),

"treeview1"

);

selection = gtk_tree_view_get_selection(treeview);

gtk_tree_selection_get_selected(selection, (gtktreemodel**)&

store

, &iter

);

gtk_tree_model_get_value(gtk_tree_model(

store

), &

iter

, 0, &

value

);

g_debug(

"%s/n"

, g_value_get_string(&

value

));

return

; }

~~end~~

用per實現l自動傳送郵件

最近在做自動化測試環境的自動部署,其他都很順利,但是同事反應說我們並不知道你是否安裝成功,而且也不知道你安裝的最新版本是什麼,不是很方便,所以我就想試著用perl來寫乙個自動傳送郵件的指令碼,但最新的build安裝成功的時候,則發一封郵件通知測試人員,這樣就全程自動化了。哈哈,底下是本人的實現。主要...

T vs L 到底用誰?L!

一直沒有注意這個,今天突然糾結起來這個問題,寫多了,難免這兩個混用。現在是時候有個結論了 如果你的工程是unicode編譯,那麼請明確的使用l!如果是多位元組 ansi 那麼請使用 t 或者更為直接的使用 t 根據編譯環境自動選擇使用char還是wchar,但是往往你並不需要切換編譯環境,即使你切換...

用verilog實現L293D 驅動板介面

課程實驗做了乙個藍芽智慧型小車,nexys4開發板,mipsfpga 乙個在 fpga 上實現的商業 mips 處理器軟核,imagination technologies公司提供給高校免費使用 再加上vivado裡面的一些ip核,搭了乙個簡單的處理器系統。要用這玩意來接用了l293d 驅動板的小車...