Не удается отобразить спичечную клавиатуру на сенсорном экране киоска - PullRequest
0 голосов
/ 26 февраля 2020

У меня проблема с получением спичечной клавиатуры для работы над моим дизайном киосков на основе yocto. Я использую модуль CM3 с tho-версией yocto для этого дизайна и использую спичечный коробок и GTK3 для своего сенсорного экрана GUI. Я программирую на C, разработал довольно много графики и очень доволен работой. Однако я не могу отобразить спичечную клавиатуру.

Поскольку я был новичком в спичечной клавиатуре, я нашел пример программы ' matchbox-keyboard-gtk-embed. c 'и просто скопировал его метод разветвления и execlp и поместил этот код в один из моих обратных вызовов кнопок следующим образом:

void on_settings_admin_clicked (GtkButton *button, gpointer user_data)

{

LOGGER_WRITE (LOG_DEBUG, "button admin clicked") ;

int    i = 0, fd[2];
int    stdout_pipe[2];
int    stdin_pipe[2];
char   buf[256], c;
size_t n;

unsigned long result = 0;
printf("Launching keyboard\n");
pipe (stdout_pipe);
pipe (stdin_pipe);
switch (fork ())
{
    case 0:
        {
            /* Close the Child process' STDOUT */
            close(1);
            dup(stdout_pipe[1]);
            close(stdout_pipe[0]);
            close(stdout_pipe[1]);
            execlp ("/bin/sh", "sh", "-c", "matchbox-keyboard --xid -d -o landscape", NULL);
        }
    case -1:
        perror ("### Failed to launch 'matchbox-keyboard --xid', is it installed? ### ");
        exit(1);
}

/* Parent */
close(stdout_pipe[1]);

.... на моей последовательной консоли я вижу:

470 ?        S      0:00 matchbox-keyboard --xid -d -o landscape

Кто-нибудь имел успех с использованием спичечной клавиатуры в подобном приложении?

...