7
votes

GTK Treeview: Placez les boutons image sur les lignes

Pour chaque ligne de mon arbreview, je veux 4 boutons d'image côte à côte. Ils agiront comme des boutons radio, avec un seul étant activé à la fois. Chaque bouton a une image 'ON' et 'OFF'.

Comment puis-je faire ça? J'ai compris comment mettre des images là-bas et comment mettre des togglebuttons, mais cela semble avoir besoin de plus d'efforts car il n'y a pas de cellrender pré-construit qui fait ce que je veux.

Fondamentalement, ce que je résolvait mon problème consiste à comprendre comment faire une image dans un gtk.treeview cliquable. des idées?


0 commentaires

3 Réponses :


2
votes

Regardez ce ' http://www.daa.com.au/pipermail/pygtk/2010 -March / 018355.html '. Il vous montre comment faire un gtk.cellrendererpixbufactable, et capable de se connecter à un signal d'événement de clic.

cell = CellRendererPixbufXt()
cell.connect('clicked', func)


5 commentaires

Je ne sais pas ce que vous regardez mais ma référence. Je remarque que votre réponse fait à peu près la même chose que la référence que j'ai donnée. Si vous vous plaignez d'autre chose, s'il vous plaît soyez un peu plus clair


Le signal cliqué sur n'est jamais déclenché. En fait, ce n'est pas une grosse surprise si je cite de votre référence: "Mais je ne sais pas comment émettre le signal" cliqué "personnalisé, lorsque l'utilisateur clique sur le CellRenderer."


Au moins, vous étiez plus clair maintenant. Pourquoi tu n'as pas dit cela en premier lieu. Je vais vérifier quand j'ai le temps, mais cela fait plus d'un an, alors je ne suis pas pressé. Je suis surpris que cela a été accepté en premier lieu si cela ne fonctionne pas.


Le lien est en panne. Vous pourriez étendre votre réponse, s'il vous plaît?


Je pense que la réponse ci-dessous de Schlamar est une meilleure réponse et donne un exemple. Vraiment, il devrait être marqué comme la bonne réponse, pas la mienne. Honnêtement, je n'ai pas touché GTK pendant quelques années maintenant.



1
votes

Voici ce qui a fonctionné pour moi: xxx


1 commentaires

Je suppose que vous vous référez à kiwi.utils.gsignal ?



2
votes

Voici une version courte sans kiwi code> exigence.

class CellRendererClickablePixbuf(gtk.CellRendererPixbuf):

    __gsignals__ = {'clicked': (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE,
                                (gobject.TYPE_STRING,))
                   }

    def __init__(self):
        gtk.CellRendererPixbuf.__init__(self)
        self.set_property('mode', gtk.CELL_RENDERER_MODE_ACTIVATABLE)

    def do_activate(self, event, widget, path, background_area, cell_area,
                    flags):
        self.emit('clicked', path)


1 commentaires

J'essaie d'utiliser votre code mais je reçois gi.repository.gtk 'objet n'a aucun attribut' cell_renderer_mode_activatable ' - des idées pourquoi?