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'. P>
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. p>
Fondamentalement, ce que je résolvait mon problème consiste à comprendre comment faire une image dans un gtk.treeview code> cliquable. des idées? p>
3 Réponses :
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)
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 code> 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.
Voici ce qui a fonctionné pour moi:
Je suppose que vous vous référez à kiwi.utils.gsignal code>?
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)
J'essaie d'utiliser votre code mais je reçois gi.repository.gtk 'objet n'a aucun attribut' cell_renderer_mode_activatable ' code> - des idées pourquoi?