1
私は教育目的で非常に簡単なGUIプログラムを作成しています。ウィンドウにはGtk.Entry領域があり、そこから入力を取得し、数値が奇数か偶数かをチェックするnum_check()関数の引数として使用します(入力が無効の場合はエラーを出力します)。ボタンへのキー入力(PyGObject)
ボタンは正常ですが、マウスの代わりにEnterキーを使用したいと考えています。 Enterキーを押すと、フォーカスは入力ボックス(Gtk.Entry)に戻ります。
ここにコードがあります。私はどんな助けにも感謝します。
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()
これは感謝しました。 「有効化」と「クリック」の違いは何ですか?アクティブ化されたエントリは何を意味しますか?私はPyGObjectの[このドキュメント](https://python-gtk-3-tutorial.readthedocs.io/en/latest/index.html)を読んでいますが、それについてはあまり見つけられませんでした。 PyGTKとTkinterが普及しているようだ。 – alqm
「クリックされた」ボタンは理解しにくいです(情報には「クリック」されていません)。エントリーを入力してEnterキーを押すと、エントリー "活動化"が起こります。 「アクティブ化」ボタンは、ボタンにフォーカスしてスペースバーや同様の操作を押すと発生しますが、それは全く異なる質問です。 – theGtknerd
PyGtkはそれほど人気がありません。それはより古く、そのためにもっと多くの例があります。実際、PyGtkはもはや開発されていません。 – theGtknerd