如何在Ruby GladeGTK中创建多选列表框,也许使用TreeView?

如何在Ruby GladeGTK中创建多选列表框,也许使用TreeView?,第1张

概述我想在glade / ruby​​程序中创建一个多选列表框,我想知道我是怎么做的,比如我添加到窗口的元素和我可以使用的相应示例代码.我正在看GTKList,但它说它现在已被弃用,而且我也不知道如何让它在ruby中运行. GTK List文档说使用TreeView,但我不知道如何设置它. 为了清楚起见,我想要这样的东西,用户可以选择多个条目: alt text http://geekswithblo 我想在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 pygtkpygtk.require('2.0')import gtkimport gobjectw = 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 pathListtreevIEw.get_selection().connect('changed',lambda s: print_selected(s))w.add(treevIEw)w.show_all()gtk.main()
总结

以上是内存溢出为你收集整理的如何在Ruby Glade / GTK中创建多选列表框,也许使用TreeView?全部内容,希望文章能够帮你解决如何在Ruby Glade / GTK中创建多选列表框,也许使用TreeView?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1212393.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存