gpt4 book ai didi

ruby - 如何在 Ruby Glade/GTK 中制作多选列表框,也许使用 TreeView?

转载 作者:数据小太阳 更新时间:2023-10-29 07:49:07 25 4
gpt4 key购买 nike

我正在尝试在 glade/ruby 程序中制作一个多选列表框,我想知道我是怎么做到的,比如我添加到窗口的元素以及我可以使用的相应示例代码。我在看 GTKList 但它说它现在已被弃用,而且我也不知道如何让它在 ruby​​ 中工作。 GTK List 文档说要使用 TreeView,但我不知道如何设置它。

明确一点,我想要这样的东西,用户可以在其中选择多个条目:

alt text http://geekswithblogs.net/images/geekswithblogs_net/dotNETvinz/OutputPreselectListBox.JPG

感谢大佬们的帮助!我真的很想问这个问题。

最佳答案

基本上,您必须使用 GtkTreeView 并将其“模型”属性设置为包含您的数据的 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()

关于ruby - 如何在 Ruby Glade/GTK 中制作多选列表框,也许使用 TreeView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1210602/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com