Ruby GtkTreeView重新排序
我必须使用Gtk DnD排序树视图。 DnD没有问题,但我不知道如何对节点进行排序。 我试图使用Ruby GtkTreeView重新排序,ruby,sorting,gtk,drag-and-drop,gtktreeview,Ruby,Sorting,Gtk,Drag And Drop,Gtktreeview,我必须使用Gtk DnD排序树视图。 DnD没有问题,但我不知道如何对节点进行排序。 我试图使用Gtk::TreeStore.reorder(父级,新订单),但我不明白 怎么了 从我的代码中提取: @store = Gtk::TreeStore.new(String, String, String, String) @tree =Gtk::TreeView.new(@store) @tree.set_headers_visible(false) column = Gtk::TreeVie
Gtk::TreeStore.reorder(父级,新订单)
,但我不明白
怎么了
从我的代码中提取:
@store = Gtk::TreeStore.new(String, String, String, String)
@tree =Gtk::TreeView.new(@store)
@tree.set_headers_visible(false)
column = Gtk::TreeViewColumn.new
renderer = Gtk::CellRendererPixbuf.new
column.pack_start(renderer, false)
column.add_attribute(renderer, 'stock_id', 2)
renderer = Gtk::CellRendererText.new
column.pack_start(renderer, true)
column.add_attribute(renderer, "text", 1)
@tree.append_column(column)
@tree.enable_tree_lines=true
@tree.selection.mode = Gtk::SELECTION_SINGLE
def fct_Treeview_orderIter(treeviewIter, store)
arrResult=Array.new
arrTmp=Array.new
hNodes=Hash.new
hResult=Hash.new
nbiter=treeviewIter.n_children
p "nb children=#{nbiter}"
(0..nbiter-1).each do |index|
child_iter=treeviewIter.nth_child(index)
hNodes[index]=child_iter[1]
#fct_Treeview_orderIter(child_iter, store)
end
arrTmp=hNodes.to_a.sort do |a, b|
a[1] <=> b[1]
end
arrResult=arrTmp.collect { |entry| [entry[0].to_i] }.flatten
store.reorder(treeviewIter, arrResult)
end
@store=Gtk::TreeStore.new(字符串,字符串,字符串,字符串)
@tree=Gtk::TreeView.new(@store)
@树。设置\u标题\u可见(false)
column=Gtk::TreeViewColumn.new
renderer=Gtk::CellRendererPixbuf.new
column.pack_start(渲染器,false)
column.add_属性(渲染器'stock_id',2)
renderer=Gtk::CellRenderText.new
column.pack_start(渲染器,true)
添加属性(渲染器,“文本”,1)
@tree.append_列(列)
@tree.enable_tree_line=true
@tree.selection.mode=Gtk::selection\u SINGLE
def fct_Treeview_订购者(Treeview,商店)
arresult=Array.new
arrTmp=Array.new
hNodes=Hash.new
hResult=Hash.new
nbiter=treeviewIter.n_儿童
p“nb children=#{nbiter}”
(0..nbiter-1)。每个do |索引|
child\u iter=treeviewIter.n\u child(索引)
hNodes[index]=子节点[1]
#fct_Treeview_orderIter(儿童、商店)
结束
arrTmp=hNodes.to_a.sort do | a,b|
a[1]b[1]
结束
arrResult=arrTmp.collect{| entry |[entry[0].to_i]}.flatten
store.reorder(treeviewIter,arresult)
结束
我收到的错误消息与
有人能帮我吗?ruby-gnome2()中有一个bug
- apt-get-install-ruby-gnome2-dev李>
- 从主源分支下载ruby-gnome2李>
- 编译并安装
玩得开心 嗨,欢迎。请问您的错误是什么?