Question

Dans ma demande PyGTK J'utilise actuellement « modifiable » pour rendre les cellules modifiables. Mais depuis mon contenu de la cellule sont parfois vraiment très grand, je veux demander à l'utilisateur des changements dans une nouvelle fenêtre quand il doubleclicks sur une cellule. Mais je ne pouvais pas savoir comment brancher sur double-clique sur CellRenderers de particuliers - Je ne veux pas modifier toute la ligne et je aussi ne veux pas définir ce rappel pour toute la ligne, uniquement pour les colonnes où le contenu trop long peut arriver. Comment puis-je faire avec CellRendererText () ou quelque chose de similaire.

Mon code actuellement production cellulaire est:

cols[i] = gtk.TreeViewColumn(coltitle)
cells[i] = gtk.CellRendererText()
cols[i].pack_start(cells[i])
cols[i].add_attribute(cells[i], 'text', i)
cols[i].set_sizing(gtk.TREE_VIEW_COLUMN_FIXED)
cols[i].set_fixed_width(100)
cells[i].set_property('editable', True)
cells[i].connect('edited', self.edited, (i, ls))
cols[i].set_resizable(True)
mytreeview.append_column(cols[i])

Merci!

Était-ce utile?

La solution

Je crois que ce n'est pas possible directement. Cependant, vous pouvez vous connecter à button-press-event sur le gtk.TreeView. Puis, quand event.type est égal à gtk.gdk._2BUTTON_PRESS, convertir x et y à l'emplacement de l'arbre via gtk.TreeView.get_path_at_pos(). Ceci renvoie à la fois un chemin d'arbre indiquant la ligne et de l'objet gtk.TreeViewColumn sur lequel le clic a été fait.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top