ComboBox et selection d'un Noeud TreeStore
Bonsoir,
Alors voilà mon probleme je souhaite créer un arbre de compétence. L'idée c'est de prendre les compétences, les mettre dans un TreeStore que je lie à une ComboBox pour pouvoir selectionner la competence parent de la competence que je vais créer. Et là, j'ai deux problemes :
Dés que j'ai cliqué sur la ComboBox, comment je peux faire pour annuler le choix ? (au pire, je ferrai un truc assez crade en rajoutant une compétence bidon à mon treestore)
Lorsque je survole les noeud dans la ComboBox, il me les déplie, mais je ne peux pas cliquer dessus pour les selectionner. J'ai cherché sur la doc de ComboBox, mais je n'ai rien trouvé
mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
require "rubygems"
require "active_record"
require "acts_as_tree"
class Competence < ActiveRecord::Base
acts_as_tree
end
#J'utilise les fonctions de l'acts_as_tree pour créer un TreeStore
class TreeCompetence < Gtk::TreeStore
def storeR(parent, node,store)
childs = parent.children
childs.each do |child|
subnode = store.append(node)
subnode[0] = child
storeR(child, subnode,store)
end
end
def initialize
super(Competence)
competences = Competence.find_all_by_parent_id(nil)
competences.each do |competence|
root = self.append(nil)
root[0] = competence
storeR(root[0],root,self)
end
end
end
store = TreeCompetence.new
box = Gtk::ComboBox.new(store)
rend = Gtk::CellRendererText.new
box.pack_start(rend,false)
box.set_cell_data_func(rend) do |celllayout, rend, model, iter|
rend.text = iter[0].nom
end |
Si quelqu'un a une piste :)
Merci