Gtk pythonを使用してインターフェイスをプログラミングし、物理キーボードなしでUdoo Neo画面に表示しています。
フィールドに入力するたびにキーボードが表示されるようにします。しかし、私はTkinterライブラリを使いたくありません。
画面にキーボードを配置する簡単な方法はありますか?
以下を使用して、フォーカスイン/アウトのコマンドを呼び出すことができます。
field.connect('focus-in-event', self.focus_in)
または:
field.connect('focus-out-event', self.focus_out)
ここで、focus_in()
およびfocus_out()
は、フォーカスインまたはフォーカスアウト時に呼び出される関数です。
#!/usr/bin/env python3
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
import signal
import subprocess
class CallKeyboardTest:
def __init__(self):
# window definition
window = Gtk.Window(title="Test 123")
window.connect('destroy', Gtk.main_quit)
# maingrid
maingrid = Gtk.Grid()
maingrid.set_border_width(12)
window.add(maingrid)
# two different fields, one is calling the keyboard, the other isn't
testfield = Gtk.Entry()
testfield.connect('focus-in-event', self.focus_in)
testfield.connect('focus-out-event', self.focus_out)
otherfield = Gtk.Entry()
maingrid.attach(testfield, 0, 0, 1, 1)
maingrid.attach(otherfield, 0, 1, 1, 1)
window.show_all()
Gtk.main()
def focus_out(self, entry, event):
subprocess.Popen(["pkill", "onboard"])
def focus_in(self, entry, event):
subprocess.Popen("onboard")
def stop_prefs(self, *args):
Gtk.main_quit()
if __== "__main__":
CallKeyboardTest()
上記の例では、フィールド "testfield"がフォーカスされ、フォーカスアウト(または "otherfield"にフォーカス)されると、オンスクリーンキーボードが消えます。
フォーカスでキーボードを呼び出します
フォーカスアウト時にキーボードを閉じる
オンボードキーボードには、レイアウト、位置、ログ学習、サイズなどの多くのオプションがあります。man onboard
を参照してください