Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Example of Virtual Keyboard showing in different languages



  • @Pradeep-Kumar

    Yes, you are right.
    First, make(qmake & make) plugin and then install.



  • Install means?. its a plugin, need ti install plugin to the other basic.pro

    path : Qt\Qt5.8\5.8\Src\qtvirtualkeyboard\examples\virtualkeyboard\basic is app to run.
    ?????????????????

    Thanks,



  • @Pradeep-Kumar

    I assume you are using Windows & minGW.
    Try the following procedure.

    1. Open the Command window (aka Qt 5.8 for Desktop...)
    2. Move to the plugin dir. (cd Qt\Qt5.8\5.8\Src\qtvirtualkeyboard\src/virtualkeyboard)
    3. Add the "CONFIG += lang-fi_FI" in virtualkeyboard.pro and save.
    4. Run qmake
    5. Run mingw32-make
    6. Run mingw32-make install
    7. Rebuild your exampls and run.


  • i followed the steps in command prompt as u mentioned , i git the button enabled and the respective keyboard in Finnish i guess, please find the link below of the screenshot,

    https://postimg.org/image/xfcbfbmmp/

    Thanks man,

    So now i will try for all the languages,

    Thanks,



  • Hi ,

    I tried arabic by changing in .pro, CONFIG+=lang-ar_AR,
    and chinese using CONFIG+=lang-zh_TW,

    below is the link of the screenshot of chinese keyboard,

    https://postimg.org/image/5br02a6tl/,

    but for lang-zh_CN, i didnt get the keyboard in chinese, any specific reason?.

    Thanks,


  • Lifetime Qt Champion

    Just a wild guess but do you have any fonts that supports these characters ?



  • Nope, do we need to install in some respective path?.

    Thanks,


  • Lifetime Qt Champion

    In your target font folder AFAIK.



  • I don't think it's installed font problem.
    Also i don't know PinyinInputMethod( lang-zh_CN), TCInputMethod(lang-zh_TW) and chinese languages.
    But, there are difference between the two features provided by QtVirtualKeyboard.
    Please compare the two source codes below.
    I think the layout for zh_CN is strange.

    Qt\Qt5.8\5.8\Src\qtvirtualkeyboard\src\virtualkeyboard\content\layouts\zh_CN\main.qml

    Qt\Qt5.8\5.8\Src\qtvirtualkeyboard\src\virtualkeyboard\content\layouts\zh_TW\main.qml



  • Hi,

    I have question regarding the virtual keyboard topic mentioned before and especially for the chinese one. How can I get the upper frame of the keyboard layout for the additional chinese letters.
    Is it just a word prediction with hunspell or is it an independent mechanism to show additional letters depending on the current selected one?

    I tried the virtual keyboard example with all languages. But with simplified chinese I have only normal alpha numeric letters like at the official QT link. But they can chose a chinese letter if they typed in some alpha numeric ones.

    you can see an example here (Pinyin keyboard layout, Zhuyin keyboard layout, Cangjie keyboard layout):



  • @Devopia53

    again after few days when i try to do the same thing, follow the same steps through command prompt,

    1 Open the Command window (aka Qt 5.8 for Desktop...)
    2 Move to the plugin dir. (cd Qt\Qt5.8\5.8\Src\qtvirtualkeyboard\src/virtualkeyboard)
    3 Add the "CONFIG += lang-fi_FI" in virtualkeyboard.pro and save.
    4 Run qmake
    5 Run mingw32-make
    6 Run mingw32-make install
    7 Rebuild your exampls and run

    The button is not enabled for respective language. and i am using

    path : Qt\Qt5.8\5.8\Src\qtvirtualkeyboard\examples\virtualkeyboard\basic is app to run.

    path : Qt\Qt5.8\5.8\Src\qtvirtualkeyboard\src\virtualkeyboard is the plugin to which we need to change and check,

    any clue what i am doing wrong, few days back i tried it worked, now i dnt know what happened?.

    Thanks,



  • Hi,

    Now it is working and i followed the same steps,
    I dnt know how it worked today and thank u.

    Thanks,



  • Hi,

    I assume you are using Windows & minGW.
    Try the following procedure.

    1) Open the Command window (aka Qt 5.8 for Desktop...)
    2) Move to the plugin dir. (cd Qt\Qt5.8\5.8\Src\qtvirtualkeyboard\src/virtualkeyboard)
    3) Add the "CONFIG += lang-fi_FI" in virtualkeyboard.pro and save.
    4) Run qmake
    5) Run mingw32-make
    6)  Run mingw32-make install
    7) Rebuild your exampls and run.
    

    This works fine for windows,

    Anyone, who knows the similar commands to run in ubuntu,

    What are the steps to compile the qt virtual keyboard and run the Qt virtual keyboard in ubuntu.

    Thanks,



  • require the commands to run in ubuntu,

    please can anyone provide guidance,

    Thanks,


  • Lifetime Qt Champion

    Hi,

    The steps are the same except that your call make rather than mingw32-make.

    Just ensure you use the full path to your installed Qt's qmake. Otherwise you'll likely use your system provided qmake.



  • Hi,

    I have used the path where virtual keyboard plugin is present

    /home/user/Qt5.8.0/5.8/Src/qtvirtualkeyboard/src/virtualkeyboard/

    then used qmake .
    then used the command make.

    getting the below error.

    user@user-Inspiron-3558:~/Qt5.8.0/5.8/Src/qtvirtualkeyboard/src/virtualkeyboard$ make

    /opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-none-linux-gnueabi-g++ -c -pipe -march=armv7-a -mfpu=neon -DLINUX=1 -DEGL_API_FB=1 -mfloat-abi=softfp -O2 -fvisibility=hidden -fvisibility-inlines-hidden -std=c++0x -fno-exceptions -Wall -W -D_REENTRANT -fPIC -DQT_NO_LIBUDEV -DQT_VIRTUALKEYBOARD_DEFAULT_STYLE="default" -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DQT_PLUGIN -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I/usr/local/Qt-5.4.0/mkspecs/devices/linux-imx6-g++ -I. -I/u01/rootfs/usr/include -I/u01/rootfs/usr/local/Qt-5.4.0/include -I/u01/rootfs/usr/local/Qt-5.4.0/include/QtQuick -I/u01/rootfs/usr/local/Qt-5.4.0/include/QtGui/5.4.0 -I/u01/rootfs/usr/local/Qt-5.4.0/include/QtGui/5.4.0/QtGui -I/u01/rootfs/usr/local/Qt-5.4.0/include/QtGui -I/u01/rootfs/usr/local/Qt-5.4.0/include/QtQml -I/u01/rootfs/usr/local/Qt-5.4.0/include/QtNetwork -I/u01/rootfs/usr/local/Qt-5.4.0/include/QtCore/5.4.0 -I/u01/rootfs/usr/local/Qt-5.4.0/include/QtCore/5.4.0/QtCore -I/u01/rootfs/usr/local/Qt-5.4.0/include/QtCore -I.moc -I/u01/rootfs/usr/include -o .obj/inputcontext.o inputcontext.cpp

    inputcontext.cpp: In member function 'void QtVirtualKeyboard::InputContext::setSelectionOnFocusObject(const QPointF&, const QPointF&)':

    inputcontext.cpp:565:5: error: 'setSelectionOnFocusObject' is not a member of 'QPlatformInputContext'
    inputcontext.cpp: In member function 'void
    QtVirtualKeyboard::InputContext::update(Qt::InputMethodQueries)':
    inputcontext.cpp:655:51: error: 'class QInputMethod' has no member named 'anchorRectangle'
    inputcontext.cpp:670:66: error: 'ImInputItemClipRectangle' is not a member of 'Qt'
    inputcontext.cpp:671:59: error: 'ImAnchorRectangle' is not a member of 'Qt'
    make: *** [.obj/inputcontext.o] Error 1

    I am using ubuntu 14.04 LTS and Qt version 5.8.

    Please provide the guidance.

    Thanks,


  • Lifetime Qt Champion

    Except that your are building against a 5.4.0 version of Qt. Did you use the full path to the qmake from your cross-compiled Qt ?



  • HI,

    now i used like

    -Inspiron-3558:~/Qt5.8.0/5.8/Src/qtvirtualkeyboard/src/virtualkeyboard$ /home/user/Qt5.8.0/5.8/gcc_64/bin/qmake

    Then ran

    -Inspiron-3558:~/Qt5.8.0/5.8/Src/qtvirtualkeyboard/src/virtualkeyboard$ make

    Now i am getting below mentioned error.

    g++ -c -pipe -O2 -std=c++1z -fvisibility=hidden -fvisibility-inlines-hidden -fno-exceptions -Wall -W -Wvla -Wdate-time -D_REENTRANT -fPIC -DQT_VIRTUALKEYBOARD_DEFAULT_STYLE="default" -DQT_VIRTUALKEYBOARD_DESKTOP -DQT_VIRTUALKEYBOARD_HAVE_XCB -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DQT_PLUGIN -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -I/home/user/Qt5.8.0/5.8/gcc_64/include -I/home/user/Qt5.8.0/5.8/gcc_64/include/QtQuick -I/home/user/Qt5.8.0/5.8/gcc_64/include/QtGui/5.8.0 -I/home/user/Qt5.8.0/5.8/gcc_64/include/QtGui/5.8.0/QtGui -I/home/user/Qt5.8.0/5.8/gcc_64/include/QtGui -I/home/user/Qt5.8.0/5.8/gcc_64/include/QtQml -I/home/user/Qt5.8.0/5.8/gcc_64/include/QtNetwork -I/home/user/Qt5.8.0/5.8/gcc_64/include/QtCore/5.8.0 -I/home/user/Qt5.8.0/5.8/gcc_64/include/QtCore/5.8.0/QtCore -I/home/user/Qt5.8.0/5.8/gcc_64/include/QtCore -I.moc -isystem /usr/include/libdrm -I/home/user/Qt5.8.0/5.8/gcc_64/mkspecs/linux-g++ -o .obj/inputcontext.o inputcontext.cpp

    g++: error: unrecognized command line option ‘-std=c++1z’
    g++: error: unrecognized command line option ‘-Wdate-time’

    make: *** [.obj/inputcontext.o] Error 1

    Please help me out.

    Thanks,


  • Qt Champions 2019

    @Pradeep-Kumar said in Example of Virtual Keyboard showing in different languages:

    Qt5.8.0/5.8/gcc_64/bin/qmake

    I thought you want to build for your target device using your cross compiled Qt 5.4? Now you're building for desktop Qt 5.9. What do you want to do?



  • Hi,

    I want to compile the virtualkeyboard for ubuntu and raspberry pi board as i did for windows,

    In windows i was able to compile and get it,
    here is the screenshot

    https://postimg.org/image/xfcbfbmmp/

    So i was trying and getting the errors as mentioned in my earlier post,

    So asking guidance,

    Thanks,


  • Lifetime Qt Champion

    Like I already wrote: use the full path to the qmake executable matching the version of Qt you want to build the module for.

    Also, use out of source builds since you are going to compile for several platforms, that will avoid "polluting" the source tree with build artefacts.



  • @SGaist said in Example of Virtual Keyboard showing in different languages:

    Like I already wrote: use the full path to the qmake executable matching the version of Qt you want to build the module for.

    Also, use out of source builds since you are going to compile for several platforms, that will avoid "polluting" the source tree with build artefacts.

    Use the full path?.

    can u explain this well Qt5.8 is installed in home directory i am using fullpath only.
    /home/user/Qt5.8.0/5.8/gcc_64/bin/qmake

    Thanks,


  • Lifetime Qt Champion

    Just to be sure, are we clear that this one will only be valid for building the module for your Qt 5.8 installation ?

    By the way, what version of g++ are you running on your machine ?



  • gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.3)

    Thanks,



  • Hi,

    what is the

    g++: error: unrecognized command line option ‘-std=c++1z’
    g++: error: unrecognized command line option ‘-Wdate-time’

    and what is -std=c++1z , -Wdate-time

    and should i turn off or disable -std=c++1z , -Wdate-time ,

    Thanks,


  • Qt Champions 2019

    @Pradeep-Kumar Make sure you're building from a clean state!
    What I mean: if you don't use out of source build then extract the source code archive again and try to build again. Better to use out of source builds as @SGaist suggested.



  • I have the same problem on Linux.



  • Hi,

    Still the same error.
    I used qtvirtualkeyboard source code , moved out into different folder, followed the same steps .
    Still same getting

    g++: error: unrecognized command line option ‘-std=c++1z’
    g++: error: unrecognized command line option ‘-Wdate-time’

    Thanks,


  • Lifetime Qt Champion

    I think they should be the same but can you just check that g++ is the same version as gcc ?



  • Hi,

    Both are same versions.

    4.8.4-2ubuntu1~14.04.3

    Thanks,


  • Lifetime Qt Champion

    From the supported platform 5.9 is at Ubuntu 16.04. You're version of g++ is a bit outdated in that regards so you'll have to modify the mkspec a bit to remove the date-time warning as well as change the c++1z with something a little older like c++14.



  • Hi,

    I have updated g++,

    gcc version 5.4.1 20160904 (Ubuntu 5.4.1-2ubuntu1~14.04)
    gcc version 5.4.1 20160904 (Ubuntu 5.4.1-2ubuntu1~14.04)

    gcc is same as g++,

    still i am unable to achieve it.

    1. i used qmake
      -Inspiron-3558:~/Qt5.8.0/5.8/Src/qtvirtualkeyboard/src/virtualkeyboard$ /home/user/Qt5.8.0/5.8/gcc_64/bin/qmake

    2. then used make

    -Inspiron-3558:~/Qt5.8.0/5.8/Src/qtvirtualkeyboard/src/virtualkeyboard$ make
    rm -f libqtvirtualkeyboardplugin.so
    g++ -Wl,--no-undefined -Wl,-O1 -Wl,--enable-new-dtags -Wl,-z,origin -Wl,-rpath,$ORIGIN/../../lib -Wl,-rpath,$ORIGIN/../../lib -shared -o libqtvirtualkeyboardplugin.so .obj/platforminputcontext.o .obj/inputcontext.o .obj/abstractinputmethod.o .obj/plaininputmethod.o .obj/inputengine.o .obj/shifthandler.o .obj/plugin.o .obj/inputmethod.o .obj/selectionlistmodel.o .obj/defaultinputmethod.o .obj/abstractinputpanel.o .obj/enterkeyaction.o .obj/enterkeyactionattachedtype.o .obj/settings.o .obj/virtualkeyboardsettings.o .obj/trace.o .obj/desktopinputpanel.o .obj/inputview.o .obj/appinputpanel.o .obj/qrc_default_style.o .obj/qrc_retro_style.o .obj/qrc_content.o .obj/qrc_layouts.o .obj/moc_platforminputcontext.o .obj/moc_inputcontext.o .obj/moc_abstractinputmethod.o .obj/moc_plaininputmethod.o .obj/moc_inputengine.o .obj/moc_shifthandler.o .obj/moc_inputmethod.o .obj/moc_selectionlistmodel.o .obj/moc_defaultinputmethod.o .obj/moc_abstractinputpanel.o .obj/moc_enterkeyaction.o .obj/moc_enterkeyactionattachedtype.o .obj/moc_settings.o .obj/moc_virtualkeyboardsettings.o .obj/moc_plugin.o .obj/moc_trace.o .obj/moc_desktopinputpanel.o .obj/moc_inputview.o .obj/moc_appinputpanel.o -lxcb-xfixes -lxcb-render -lxcb-shape -lxcb -L/home/dheerendra/Qt5.8.0/5.8/gcc_64/lib -lQt5Quick -lQt5Gui -lQt5Qml -lQt5Network -lQt5Core -lGL -lpthread
    /usr/bin/ld: .obj/platforminputcontext.o: Relocations in generic ELF (EM: 40)
    .obj/platforminputcontext.o: error adding symbols: File in wrong format
    collect2: error: ld returned 1 exit status
    make: *** [../../plugins/platforminputcontexts/libqtvirtualkeyboardplugin.so] Error 1

    I am getting the above errors, can u help me out,

    Please provide guidance,

    Thanks,



  • HI,

    I installed latest g++ and gcc versions and

    1. used qmake.
    2. then make clean.
    3. then make.
    4. make install.

    Then ran the basic program which is present in the path
    /home/user/Qt5.8.0/5.8/Src/qtvirtualkeyboard/examples/virtualkeyboard/basic

    I am getting virtual keyboard in ubuntu,
    Thanks for the solutions and help,

    But when i change the language present in the path,
    /home/user/Qt5.8.0/5.8/Src/qtvirtualkeyboard/src/virtualkeyboard

    as CONFIG += lang-ar_AR in the virtualkeyboard.pro file,

    then again followed the steps to compile the plugin,
    but when i ran the basic program to launch virtual keyboard, i am not getting the button enabled, to select the language,

    Please provide the guidance,

    Thanks,


  • Qt Champions 2019

    @Pradeep-Kumar said in Example of Virtual Keyboard showing in different languages:

    .obj/platforminputcontext.o: error adding symbols: File in wrong format

    you should do it from a clean state - looks like you have binaries built with the old compiler.



  • Yes @jsulm i got that point made a clean then built it i got the virtual keyboard, but i am not getting for different languages, tats y i posted in earlier post.

    Thanks,


  • Lifetime Qt Champion

    AFAICS you are setting only one language when building the module. You should list all the languages you want to support.



  • nope still the same, i provided 4 languages in .pro file,

    still the same issue.

    when i run make install

    -Inspiron-3558:~/Qt5.8.0/5.8/Src/qtvirtualkeyboard/src/virtualkeyboard$ make install
    install -m 755 -p ../../plugins/platforminputcontexts/libqtvirtualkeyboardplugin.so /home/user/Qt5.8.0/5.8/gcc_64/plugins/platforminputcontexts/libqtvirtualkeyboardplugin.so
    strip --strip-unneeded /home/dheerendra/Qt5.8.0/5.8/gcc_64/plugins/platforminputcontexts/libqtvirtualkeyboardplugin.so
    install -m 644 -p /home/user/Qt5.8.0/5.8/Src/qtvirtualkeyboard/lib/cmake/Qt5Gui/Qt5Gui_QVirtualKeyboardPlugin.cmake /home/dheerendra/Qt5.8.0/5.8/gcc_64/lib/cmake/Qt5Gui/

    after this i run sample program.

    Thanks,



  • The Qt open source package contains the qtvirtualkeyboard component.
    I can build it without anu problem but I can't add the flag lang-all.
    Insert CONFIG += lang-all in .pro file has no effect.



  • Hello,

    now i am facing one more issue, when i try to compile the program using Qt creator,
    getting the below mentioned errors,

    home/user/Qt5.8.0/5.8/gcc_64/mkspecs/features/qt_plugin.prf:52: Cannot write file /mkspecs/modules-inst/qt_plugin_qtvirtualkeyboardplugin.pri: Cannot create parent directory
    17:58:18: The process "/home/user/Qt5.8.0/5.8/gcc_64/bin/qmake" exited with code 3.
    Error while building/deploying project virtualkeyboard (kit: Desktop Qt 5.8.0 GCC 64bit)
    The kit Desktop Qt 5.8.0 GCC 64bit has configuration issues which might be the root cause for this problem.
    When executing step "qmake".

    But the kit is configured and rest of the programs are running, only the virtualkeyboard program is giving me this error...

    Guidance is required,

    Thanks,


  • Qt Champions 2019

    @Pradeep-Kumar said in Example of Virtual Keyboard showing in different languages:

    Cannot write file /mkspecs/modules-inst/qt_plugin_qtvirtualkeyboardplugin.pri

    Are you really trying to write to /mkspects ? This would be a subdirectory of the root directory where a normal user has no write access. Does this directory even exist?


Log in to reply