Ich erstelle schnell eine Anwendung für den Ubuntu App Showdown in Python + Gtk. Ich nenne es Discvur. Ich hätte gerne einige Tastaturkürzel eingefügt.
Beim Durchsuchen des Webs habe ich diese Seite über AccelGroup und diese Seite über gtk_widget_add_accelerator gefunden, aber ich verstehe nicht, wie ich damit anfangen soll. Können Sie mir sagen, wie ich ein geeignetes Signal definieren und es dann in meiner Anwendung verwenden würde?
Antworten:
Hier sind einige Code-Teile aus einer meiner Python + Gtk-Apps, die gemäß den Kommentaren zu dieser Antwort weiter erweitert wurden:
quelle
self.add_accelerator(self.quick_add_entry, "<Control>l", signal="grab-focus") AttributeError: 'DiscvurWindow' object has no attribute 'quick_add_entry'
. Wenn ich eine Websuche nach "quick_add_entry" versuche, kann ich sie nirgendwo finden. Sind Sie sicher, dass es die richtige Funktion ist? Wo finde ich weitere Informationen / ein Tutorial dazu? Bedeutet "<Steuerung> l" außerdem Strg + l oder handelt es sich um einen Fehlertyp?Hier ist der Code, der endlich funktioniert hat. Da dies stark von meiner Entwicklungsumgebung abhängt, mache ich Quickly + Glade + Python + Gtk zu einer unabhängigen Antwort. Bryces Antwort hat mir sehr geholfen, ebenso wie mein Austausch mit aking1012 .
Der eigentliche Code in einem Texteditor:
In Glade habe ich in meinem Fenster einen "GtkEntry" namens "entry1" mit dem Namen "discvur_window" erstellt. Auf der Registerkarte "Signale" habe ich dem Signal "Rücktaste" einen Handler namens "on_erasing" gegeben.
Wenn Sie jetzt Backspaceoder Ctrl+ Bdrücken, wird auf dem Terminal "Es funktioniert" gedruckt.
quelle
Ich habe die Antworten in diesem Thread in ein eigenständiges Beispiel umgepackt:
Hinweis: Das Standardsignal ist
clicked
nicht,activate
weil Anwendungen niemals eine Verbindung zum::activate
Signal herstellen sollten, sondern das Gtk.Button-::clicked
Signal verwenden.quelle
clicked
des Gaspedals kann sehr schnell püriert werden, aber die Taste drückt nicht visuell. Bei Verwendungactivate
wird die Taste gedrückt, aber das Gaspedal kann erst gedrückt werden, wenn das visuelle Drücken beendet ist.