如何在Ruby Glade中构建基于TreeView的多选列表框?
- 内容介绍
- 文章标签
- 相关推荐
本文共计560个文字,预计阅读时间需要3分钟。
在Glade和Ruby程序中创建多选列表框,您可以按照以下步骤操作:
1. 打开Glade界面设计器。
2.在Glade中,从工具箱中选择列表框(Listbox)控件。
3.将列表框拖放到窗口设计区域。
4.在属性窗口中,将列表框的类型属性设置为多选(Multiple)。
5.要添加项目到列表框,可以在列表属性中直接输入项目,每个项目用分号分隔。
6.保存Glade文件,并使用相应的Ruby代码生成界面。
以下是一个简单的Ruby代码示例,使用Glade生成的XML文件来创建多选列表框:
ruby
require 'gtk3'加载Glade界面builder=Gtk::Builder.newbuilder.add_from_file('your_window.glade')
获取多选列表框listbox=builder.get_object('your_listbox_name')
添加项目到列表框listbox.append_text('项目1')listbox.append_text('项目2')listbox.append_text('项目3')
显示窗口window=builder.get_object('your_window_name')window.show_allwindow.signal_connect('destroy') { Gtk.main_quit }Gtk.main
请确保将 `'your_window.glade'` 替换为您保存的Glade文件的路径,以及 `'your_listbox_name'` 和 `'your_window_name'` 替换为您在Glade中为列表框和窗口设置的名称。
我想在glade / ruby程序中创建一个多选列表框,我想知道我是怎么做的,比如我添加到窗口的元素和我可以使用的相应示例代码.我正在看GTKList,但它说它现在已被弃用,而且我也不知道如何让它在ruby中运行. GTK List文档说使用TreeView,但我不知道如何设置它.为了清楚起见,我想要这样的东西,用户可以选择多个条目:
alt text 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()
本文共计560个文字,预计阅读时间需要3分钟。
在Glade和Ruby程序中创建多选列表框,您可以按照以下步骤操作:
1. 打开Glade界面设计器。
2.在Glade中,从工具箱中选择列表框(Listbox)控件。
3.将列表框拖放到窗口设计区域。
4.在属性窗口中,将列表框的类型属性设置为多选(Multiple)。
5.要添加项目到列表框,可以在列表属性中直接输入项目,每个项目用分号分隔。
6.保存Glade文件,并使用相应的Ruby代码生成界面。
以下是一个简单的Ruby代码示例,使用Glade生成的XML文件来创建多选列表框:
ruby
require 'gtk3'加载Glade界面builder=Gtk::Builder.newbuilder.add_from_file('your_window.glade')
获取多选列表框listbox=builder.get_object('your_listbox_name')
添加项目到列表框listbox.append_text('项目1')listbox.append_text('项目2')listbox.append_text('项目3')
显示窗口window=builder.get_object('your_window_name')window.show_allwindow.signal_connect('destroy') { Gtk.main_quit }Gtk.main
请确保将 `'your_window.glade'` 替换为您保存的Glade文件的路径,以及 `'your_listbox_name'` 和 `'your_window_name'` 替换为您在Glade中为列表框和窗口设置的名称。
我想在glade / ruby程序中创建一个多选列表框,我想知道我是怎么做的,比如我添加到窗口的元素和我可以使用的相应示例代码.我正在看GTKList,但它说它现在已被弃用,而且我也不知道如何让它在ruby中运行. GTK List文档说使用TreeView,但我不知道如何设置它.为了清楚起见,我想要这样的东西,用户可以选择多个条目:
alt text 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()

