Appel du clavier embarqué lors du focus d'un champ
Vous pouvez appeler n'importe quelle commande sur le focus in/out en utilisant :
field.connect('focus-in-event', self.focus_in)
ou :
field.connect('focus-out-event', self.focus_out)
donde focus_in()
y focus_out()
sont vos fonctions, appelées sur le focus in ou out.
Un exemple
#!/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 __name__ == "__main__":
CallKeyboardTest()
Dans l'exemple ci-dessus, le clavier à l'écran sera appelé si le champ "testfield" est focalisé, si le focus out (ou la focalisation sur "otherfield"), le clavier à l'écran disparaîtra.
Appeler le clavier au moment du focus
Fermer le clavier lors de la sortie du focus
Note
Le clavier embarqué dispose d'un certain nombre d'options, telles que la disposition, la position, l'apprentissage du journal, la taille, etc. Voir man onboard