У меня проблема с получением спичечной клавиатуры для работы над моим дизайном киосков на основе 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
Кто-нибудь имел успех с использованием спичечной клавиатуры в подобном приложении?