2012-08-25 43 views
0

我必須使用一個Gtk DnD排序的treeview。 DnD沒有問題,但我不知道如何排序節點。 我想使用Gtk::TreeStore.reorder(parent, new_order)但我不明白 什麼是錯的。紅寶石GtkTreeView重新排序

提取物形成我的代碼:

@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 

我有同樣的錯誤信息爲this example for a liststore...

有人能幫助我嗎?

+0

嗨,歡迎光臨。請問你有什麼錯誤? –

回答