0

Gtk DnD でソートされたツリービューを使用する必要があります。DnD に問題はありませんが、ノードの並べ替え方法がわかりません。使ってみましGtk::TreeStore.reorder(parent, new_order)たが何が悪いのかわかりません。

私のコードから抽出:

@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

リストストアのこの例と同じエラー メッセージが表示されます...

誰か助けてくれませんか?

4

1 に答える 1

0

ruby-gnome2 にバグがあります ( http://sourceforge.net/p/ruby-gnome2/bugs/179/ )。

  • apt-get install ruby​​-gnome2-dev ;
  • マスター ソース ブランチから ruby​​-gnome2 をダウンロードします。
  • コンパイルしてインストールします。

楽しむ !

于 2013-02-09T22:54:32.963 に答える