Ich schreibe ein sehr einfaches GUI-Programm für Bildungszwecke. Das Fenster hat einen Gtk.Entry-Bereich, von dem ich die Eingabe nehme und als Argument für die Funktion num_check() verwende, die prüft, ob die Zahl ungerade oder gerade ist (und einen Fehler ausgibt, wenn die Eingabe ungültig ist).Bind-Taste zu Taste (PyGObject)
Die Schaltfläche funktioniert gut, aber Ich möchte in der Lage sein, die Eingabetaste anstelle der Maus zu verwenden. Und nach dem Drücken der Eingabetaste sollte der Fokus zum Eingabefeld (Gtk.Entry) zurückkehren.
Hier ist der Code. Ich schätze jede Hilfe.
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk, GObject
import odd_even
class EntryWindow(Gtk.Window):
def __init__(self):
Gtk.Window.__init__(self, title="ODD OR EVEN")
self.set_size_request(200, 100)
self.timeout_id = None
vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=6)
self.add(vbox)
self.entry = Gtk.Entry()
self.entry.get_text()
vbox.pack_start(self.entry, True, True, 0)
button = Gtk.Button.new_with_label("Go")
button.connect("clicked", self.on_click_me_clicked)
vbox.pack_start(button, True, True, 0)
self.label = Gtk.Label()
self.label.get_text()
vbox.pack_start(self.label, True, True, 0)
# after pressing "Go", grab text from entry and run num_check() with it, then set label with the result
def on_click_me_clicked(self, button):
number = self.entry.get_text()
func = odd_even.num_check(number)
print(func)
self.label.set_text(func)
win = EntryWindow()
win.connect("delete-event", Gtk.main_quit)
win.show_all()
Gtk.main()
Das hat funktioniert, danke. Was ist der Unterschied zwischen "aktivieren" und "geklickt"? Was bedeutet ein aktivierter Eintrag? Ich lese [diese Dokumentation] (https://python-gtk-3-tutorial.readthedocs.io/en/latest/index.html) über PyGObject, aber ich konnte nicht viel darüber finden. Es scheint, dass PyGTK und Tkinter beliebter sind. – alqm
Die Schaltfläche "geklickt" ist nicht schwer zu verstehen (ein Eintrag hat keine "geklickt" für Ihre Informationen). Der Eintrag "activate" erfolgt, wenn Sie in den Eintrag tippen und die Eingabetaste drücken. Die Schaltfläche "Aktivieren" passiert, wenn Sie auf die Schaltfläche fokussieren und die Leertaste oder ähnliche Aktionen drücken, aber das ist eine ganz andere Frage. – theGtknerd
PyGtk ist nicht wirklich beliebter. Es ist älter, deshalb gibt es mehr Beispiele dafür. In Wirklichkeit ist PyGtk nicht mehr entwickelt. – theGtknerd