Pregunta

Estoy desarrollando aplicaciones con Qt integrados y ejecutarlo en el uso de este dispositivo Linux. Necesito una manera de escribir caracteres no estadounidenses. ¿Es posible el cambio disposición del teclado con Qt?

He intentado ejecutarlo en Qt / X11. cambiar la disposición y la entrada están perfectamente bien allí. Pero cuando compilo con Qt / Embedded y ejecutarlo en el uso de este dispositivo que no puedo cambiar el diseño.

Me buscó en el documentación y no encontró nada acerca del cambio de diseño.

Creo que tiene algo que ver con el controlador de teclado qt como se especifica en la documentación. Parece que debo desarrollar mi propio controlador de teclado. Pero yo estoy usando el teclado estándar y creo que tiene que haber una manera estándar de idioma de introducción de cambio?

¿Qué sugieres?

Por cierto, estoy usando la versión 4.5. Tal vez 4.6 tiene algo para solucionar este problema?

exactamente el mismo problema aquí:

http://lists.trolltech.com /pipermail/qt-embedded-interest/2008-August/000034.html

http://lists.trolltech.com/qt-interest /2004-02/msg00570.html

¿Fue útil?

Solución

Versión 4.6 ha ganado mapa de teclas apoyo . Solución:

  1. generar kmap archivo:

    ckbcomp -layout xx> xx.kmap

  2. Convertir a kmap qmap

    kmap2qmap xx.kmap xx.qmap

  3. mapa de teclas de carga, ya sea por

    1. Especificación de variable de entorno QWS_KEYBOARD:

      QWS_KEYBOARD = "TTY: mapa de teclas = xx.qmap"

    2. o cargar un mapa de teclas de forma dinámica:

      QWSKeyboardHandler * currentKeyboardHandler =
          QKbdDriverFactory::create("TTY", "keymap=foo.qmap");
      

      Asegúrese de que elimine creado manejador cuando se crea una nueva:

      delete currentKeyboardHandler;
      currentKeyboardHandler =
          QKbdDriverFactory::create("TTY", "keymap=bar.qmap");
      

Parece que Qt para Linux Embedded se superseeded por Proyecto Faro . No estoy seguro de que, si puede ser de producción, ni sé cómo se maneja cambiar la disposición del teclado.

Actualizar

QT5 no tiene QWS y todas las API relacionadas con QWS se eliminan. Por lo que tendrá alguna solución thirdparty. O escribir un plugin para QPA .

Otros consejos

  

Necesito una manera de escribir caracteres no estadounidenses

Puede cambiar qmap, pero incluso en Qt 4.8.0 no hay manera de cambiar entre Estados Unidos y ruso (por ejemplo). Es necesario que kmap2qmap parche (apoyo AltGr_Lock complemento), qkbd_qws.cpp (testmods cambio de acuerdo al estado de AltGr_Lock). Es como se ve que nadie se utiliza QtEmbedded con el teclado. O la totalidad mantiene parches finales en lugar secreto.

No se puede comentar, por lo que esta es la respuesta a

  

Es necesario kmap2qmap parche (apoyo AltGr_Lock complemento), qkbd_qws.cpp (testmods cambio de acuerdo al estado de AltGr_Lock).

Esta simple parche para qkbd_qws.cpp permite interruptor beteewn idiomas mediante el botón CapsLock.

523,526c523,524
<             //if (d->m_locks[0] /*CapsLock*/ && (m->flags & QWSKeyboard::IsLetter))
<             //    testmods ^= QWSKeyboard::ModShift;
<             if (d->m_locks[0] /*CapsLock*/)
<                 testmods ^= QWSKeyboard::ModAltGr;
---
>             if (d->m_locks[0] /*CapsLock*/ && (m->flags & QWSKeyboard::IsLetter))
>                 testmods ^= QWSKeyboard::ModShift;
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top