web-dev-qa-db-fra.com

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

Je programme mes interfaces avec gtk python et les affiche sur l'écran Udoo Neo sans clavier physique.

Je veux que le clavier soit affiché 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?

4
Arwa Moath

Appel du clavier à bord du focus d'un champ

Vous pouvez appeler n’importe quelle commande sur focus in/out en utilisant:

field.connect('focus-in-event', self.focus_in)

ou:

field.connect('focus-out-event', self.focus_out)

focus_in() et focus_out() sont vos fonctions, appelées mises au point en entrée ou en sortie.

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 __== "__main__":
    CallKeyboardTest()

Dans l'exemple ci-dessus, le clavier à l'écran sera appelé si le champ "testfield" est focalisé, sur le focus (ou sur le "autre champ"), le clavier à l'écran disparaîtra.

Appelle le clavier actif

enter image description here

Ferme le clavier lors de la mise au point

enter image description here

Remarque

Le clavier intégré dispose d’un certain nombre d’options, telles que la disposition, la position, l’apprentissage du journal, la taille, etc. Voir man onboard

4
Jacob Vlijm