5 votes

Comment puis-je appeler par programmation le clavier à l'écran d'Ubuntu en gtk/Python ?

Je programme mes interfaces en utilisant gtk Python et je les affiche sur l'écran d'Udoo Neo sans avoir de clavier physique.

Je veux que le clavier s'affiche chaque fois que j'ai un champ à remplir. Cependant, je ne veux pas utiliser la bibliothèque Tkinter.

Existe-t-il un moyen simple d'avoir un clavier à l'écran ?

6voto

Jacob Vlijm Points 78990

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

enter image description here

Fermer le clavier lors de la sortie du focus

enter image description here

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X