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 :Si quelqu'un a une piste
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Merci
Partager