如何在Ruby Glade / GTK中创建多选列表框,也许使用TreeView?
发布时间:2020-12-17 01:23:26 所属栏目:百科 来源:网络整理
导读:我想在glade / ruby??程序中创建一个多选列表框,我想知道我是怎么做的,比如我添加到窗口的元素和我可以使用的相应示例代码.我正在看GTKList,但它说它现在已被弃用,而且我也不知道如何让它在ruby中运行. GTK List文档说使用TreeView,但我不知道如何设置它. 为
我想在glade /
ruby??程序中创建一个多选列表框,我想知道我是怎么做的,比如我添加到窗口的元素和我可以使用的相应示例代码.我正在看GTKList,但它说它现在已被弃用,而且我也不知道如何让它在ruby中运行. GTK List文档说使用TreeView,但我不知道如何设置它.
为了清楚起见,我想要这样的东西,用户可以选择多个条目: alt text http://geekswithblogs.net/images/geekswithblogs_net/dotNETvinz/OutputPreselectListBox.JPG 谢谢你的帮助!我对这个问题非常绝望. 解决方法
基本上,您必须使用GtkTreeView并将其“model”属性设置为包含数据的GtkListStore.
GtkTreeView使用GtkTreeSelection类管理选择.使用gtk_tree_view_get_selection(或者在ruby-gtk中映射的任何内容)来获取GtkTreeSelection.并将选择模式设置为“多个”. 这是Python中的一个例子.在Ruby / Gtk中它应该是类似的. import pygtk pygtk.require('2.0') import gtk import gobject w = gtk.Window() w.connect('destroy',lambda w:gtk.main_quit()) l = gtk.ListStore(gobject.TYPE_STRING) l.append(('Vinz',)) l.append(('Jhen',)) l.append(('Chris',)) l.append(('Shynne',)) treeview = gtk.TreeView() treeview.set_model(l) column = gtk.TreeViewColumn() cell = gtk.CellRendererText() column.pack_start(cell) column.add_attribute(cell,'text',0) treeview.append_column(column) treeview.get_selection().set_mode(gtk.SELECTION_MULTIPLE) def print_selected(treeselection): (model,pathlist)=treeselection.get_selected_rows() print pathlist treeview.get_selection().connect('changed',lambda s: print_selected(s)) w.add(treeview) w.show_all() gtk.main() (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |