Как я могу программно назвать Ubuntu на экранной клавиатуре в gtk/python?

Я программирую свои интерфейсы с помощью gtk Python и отображая их на экране Udoo Neo, не имея физической клавиатуры.

Я хочу, чтобы клавиатура была отображена каждый раз, когда у меня есть поле, чтобы быть заполненным. Однако я не хочу пользоваться библиотекой Tkinter.

Существует ли простой способ иметь клавиатуру на экране?

4
задан 14 April 2017 в 08:27

1 ответ

Вызов встроенной клавиатуры на фокусе поля

Можно назвать любую команду на фокусе в / при помощи:

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

На примере выше, на экранной клавиатуре будет назван, если поле "testfield" будет сфокусировано на фокусе (или фокусирующийся на "otherfield"), то на экранной клавиатуре исчезнет.

Назовите клавиатуру на фокусе

enter image description here

Закройте клавиатуру на фокусе

enter image description here

Примечание:

Встроенная клавиатура имеет много опций, как расположение, положение, изучение журнала, размер и т.д. Посмотрите man onboard

5
ответ дан 1 December 2019 в 09:32

Другие вопросы по тегам:

Похожие вопросы: