Estou criando um aplicativo para o Ubuntu App Showdown em Python + Gtk com rapidez. Estou chamando de Discvur. Eu gostaria de incluir alguns atalhos de teclado.
Pesquisando na web, encontrei esta página sobre o AccelGroup e esta página sobre o gtk_widget_add_accelerator, mas não entendo como começar. Você poderia me dizer como eu definiria um sinal apropriado e o usaria no meu aplicativo?
Respostas:
Aqui estão alguns bits de código de um dos meus aplicativos Python + Gtk, estendidos ainda mais de acordo com os comentários a esta resposta:
fonte
self.add_accelerator(self.quick_add_entry, "<Control>l", signal="grab-focus") AttributeError: 'DiscvurWindow' object has no attribute 'quick_add_entry'
. Quando tento uma pesquisa na Web de "quick_add_entry", não consigo encontrá-la em nenhum lugar. Tem certeza de que é a função correta? Onde posso encontrar mais informações / um tutorial para isso? Além disso, "<Control> l" significa Ctrl + l ou é um tipo de erro?Aqui está o código que finalmente funcionou. Como depende muito do meu ambiente de desenvolvimento Rapidamente + Glade + Python + Gtk, eu a faço uma resposta independente. A resposta de Bryce ajudou muito, assim como minhas trocas com aking1012 .
O código real, em um editor de texto:
No Glade, criei um GtkEntry chamado "entry1" na minha janela chamado "discvur_window". Na guia 'Signals', dei ao sinal "backspace" um manipulador chamado "on_erasing".
Agora, pressionar Backspaceou Ctrl+ Bfaz com que o terminal imprima "Funciona".
fonte
Reembalei as respostas fornecidas neste tópico em um exemplo independente:
Nota: O sinal padrão é
clicked
, nãoactivate
porque os Aplicativos nunca devem se conectar ao::activate
sinal, mas use o::clicked
sinal Gtk.Button .fonte
clicked
o acelerador pode ser esmagado muito rapidamente, mas o botão não pressiona visualmente. Ao usaractivate
, o botão pressiona, mas o acelerador só pode ser pressionado quando a pressão visual terminar.