Gtk3 + atalhos de teclado sem correspondência de sinal

4

Estou no processo de criar meu primeiro aplicativo Gtk3 + usando python, e estou bastante frustrado com a falta de documentação: (

Bem, o que estou tentando fazer é configurar o botão Excluir para remover um item do meu TreeView e não tenho um botão remover para vincular o " clicou "sinal dele para o meu código.

Este é o meu código:

def make_shortcuts(self):
        self.my_accelerators = Gtk.AccelGroup()
        self.add_accel_group(self.my_accelerators)
        self.add_accelerator(self.treeview, "<Delete>", signal="???")

def add_accelerator(self, widget, accelerator, signal="activate"):
        if accelerator is not None:
            key, mod = Gtk.accelerator_parse(accelerator)
            widget.add_accelerator(signal, self.my_accelerators, key, mod, Gtk.AccelFlags.VISIBLE)

Eu não entendo como um atalho de teclado deve ser ligado a um sinal e não a uma função. Ligar a uma função é muito mais flexível.

Existe alguma maneira de ligar um atalho de teclado a uma função?

    
por hytromo 24.11.2013 / 22:40

1 resposta

5

Em vez de usar aceleradores, você pode conectar o evento de pressionamento de tecla sinal do seu TreeView para uma função e verifique se foi a tecla Delete que foi pressionada.

def on_treeview_key_press_event(self, widget, event):
    key = Gdk.keyval_name(event.keyval)
    if key == 'Delete':
        self.remove_items()
    
por tectux 05.12.2013 / 22:40