Não é possível alterar o layout do teclado em alguns programas do Qt

7

O problema depois de uma atualização recente no meu Ubuntu 13.10 com Unity.

Ao digitar algo no Qt Creator 3.0.1 ou no meu próprio programa compilado com o Qt 5.2.1 (do qt-project.org), não posso alterar o layout do teclado. Por exemplo, se o layout atual for En quando eu iniciei o programa, somente letras inglesas serão digitadas nele, mesmo se eu mudar para o idioma russo. Se eu pressionar Alt + Shift , o ícone da bandeja mudará de En para Ru e será aplicado à maioria dos programas, mas não a alguns programas do Qt. Para mudar o layout, eu tenho que relançar o programa ou usar copiar e colar de um campo de entrada em outro programa!

Nem todos os programas do Qt têm este problema - por exemplo, o KDevelop não tem.

O upgrade do Ubuntu de 13.10 para 14.04 beta não resolveu esse problema (enquanto corrigiu outro bug, influenciando os atalhos no layout russo no LibreOffice).

O que pode causar esse comportamento estranho?

    
por Max Alibaev 12.04.2014 / 10:04

1 resposta

2

Parece que é um bug no sistema de manipulação de eventos do Qt para alterar o layout do keynoard: link bugzilla .

  

Gatis Paeglis adicionou um comentário - 03 / Dec / 13 13:47   Isso não é um bug no Qt, conforme sugerido por um desenvolvedor no link   O mesmo recurso sugere que a causa do problema é que o Qt não escuta os eventos XkbNewKeyboardNotify - isso está errado. XkbNewKeyboardNotify não tem nada a ver com alterações de layout de teclado. O evento XkbNewKeyboardNotify é disparado quando o hardware real é conectado ou desconectado, não quando o layout do teclado é alterado.   O problema real está no Xlib, como sugerido no link e em link .   Podemos esperar que um dia o plugin da plataforma xcb não precise mais de dependências para o Xlib, o que nos permitirá usar o loop de eventos xcb diretamente. Isso também deve resolver o problema de "detecção de layout de teclado".   Aqui está a discussão sobre a dependência do Xlib no link

Como foi dito, afeta somente ambientes de desktop baseados em GTK, então você pode querer migrar para o KDE. Você pode fazer assim:

sudo apt-get install kubuntu-desktop
    
por enedil 22.04.2014 / 00:37