Important: Please read the Qt Code of Conduct -

QLocale Keyboard Input set Language

  • Hi,

    i am using linux embedded with debian as OS.
    I can change the locale language and keyboard input language on Debian but on Qt5 i can only change
    QLocale but not keyboard input language.
    I found this: Note: "For the current keyboard input locale take a look at QInputMethod::locale()."
    How do i instaciate from this class and how do i change the language keyboard input?
    On Qt4 they have QLocale QApplication::keyboardInputLocale() where i can change the input language.

  • Lifetime Qt Champion


    You can use the QGuiApplication::inputMethod function to retrieve the current input method.

  • @SGaist
    I can read the locale from QInputMethod class but how do i set the language?
    I have tryied this:

    QGuiApplication app(argc, argv);
    QLocale l;
    qDebug() << l.language();
    qDebug() << app.inputMethod()->locale().language();

    But qDebug() gave me this:


    C is the inputMethod QLocale and i cannot change this to other languages.
    Any idea?

    Is the only way to change the input keyboard language with the QEglFSFunctions::loadKeymap(".qmap")
    function on linux?

  • Hi,

    i made it work with the tool kmap2qmap and loaded like this on main:

    QEglFSFunctions myKeyboard_Layout;

    The keymaps on the OS where all with .gz zipped. To make it work with the tool i had to "gunzip" all the files from
    /usr/share/keymaps/i386/qwertz and /usr/share/keymaps/i386/include
    Than do:
    kmap2qmap /usr/share/keymaps/i386/qwertz/de-latin1-nodeadkeys.kmap de-latin1-nodeadkeys.qmap

    After that you have your .qmap file. Copy it to the directory where your application runs at and add the function in main to set the right keymap fo the keyboard.

Log in to reply