Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Example of Virtual Keyboard showing in different languages
Forum Updated to NodeBB v4.3 + New Features

Example of Virtual Keyboard showing in different languages

Scheduled Pinned Locked Moved Unsolved General and Desktop
55 Posts 7 Posters 27.9k Views 5 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • Pradeep KumarP Offline
    Pradeep KumarP Offline
    Pradeep Kumar
    wrote on last edited by Pradeep Kumar
    #46

    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,

    Pradeep Kumar
    Qt,QML Developer

    1 Reply Last reply
    0
    • mrdebugM Offline
      mrdebugM Offline
      mrdebug
      wrote on last edited by
      #47

      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.

      Need programmers to hire?
      www.labcsp.com
      www.denisgottardello.it
      GMT+1
      Skype: mrdebug

      1 Reply Last reply
      0
      • Pradeep KumarP Offline
        Pradeep KumarP Offline
        Pradeep Kumar
        wrote on last edited by
        #48

        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,

        Pradeep Kumar
        Qt,QML Developer

        jsulmJ 1 Reply Last reply
        0
        • Pradeep KumarP Pradeep Kumar

          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,

          jsulmJ Offline
          jsulmJ Offline
          jsulm
          Lifetime Qt Champion
          wrote on last edited by
          #49

          @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?

          https://forum.qt.io/topic/113070/qt-code-of-conduct

          1 Reply Last reply
          0
          • Pradeep KumarP Offline
            Pradeep KumarP Offline
            Pradeep Kumar
            wrote on last edited by
            #50

            Nope i dnt know regarding that as i was trying to compile the qtvirtualkeyboard program in ubuntu, i am getting the error, but i didnt find the compiling error in windows, strange.

            is their any other configuration to be done.

            Thanks,

            Pradeep Kumar
            Qt,QML Developer

            1 Reply Last reply
            0
            • SGaistS Offline
              SGaistS Offline
              SGaist
              Lifetime Qt Champion
              wrote on last edited by
              #51

              Can you show your .pro file ?

              Again, did you start using out of source builds ?
              Between two tries, did you nuke the build folder ? If so, how did you nuke it ?

              Interested in AI ? www.idiap.ch
              Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

              1 Reply Last reply
              0
              • Pradeep KumarP Offline
                Pradeep KumarP Offline
                Pradeep Kumar
                wrote on last edited by Pradeep Kumar
                #52

                Hello,

                pro file qt virtual keyboard,

                TARGET  = qtvirtualkeyboardplugin
                DATAPATH = $$[QT_INSTALL_DATA]/qtvirtualkeyboard
                
                QMAKE_DOCS = $$PWD/doc/qtvirtualkeyboard.qdocconf
                include(doc/doc.pri)
                
                QT += qml quick gui gui-private core-private
                
                win32 {
                    CONFIG += no-pkg-config
                    QMAKE_TARGET_PRODUCT = "Qt Virtual Keyboard (Qt $$QT_VERSION)"
                    QMAKE_TARGET_DESCRIPTION = "Virtual Keyboard for Qt."
                }
                
                !no-pkg-config: CONFIG += link_pkgconfig
                
                include(../config.pri)
                
                CONFIG += lang-ar_AR lang-fr_FR
                
                SOURCES += platforminputcontext.cpp \
                    inputcontext.cpp \
                    abstractinputmethod.cpp \
                    plaininputmethod.cpp \
                    inputengine.cpp \
                    shifthandler.cpp \
                    plugin.cpp \
                    inputmethod.cpp \
                    selectionlistmodel.cpp \
                    defaultinputmethod.cpp \
                    abstractinputpanel.cpp \
                    enterkeyaction.cpp \
                    enterkeyactionattachedtype.cpp \
                    settings.cpp \
                    virtualkeyboardsettings.cpp \
                    trace.cpp \
                
                HEADERS += platforminputcontext.h \
                    inputcontext.h \
                    abstractinputmethod.h \
                    plaininputmethod.h \
                    inputengine.h \
                    shifthandler.h \
                    inputmethod.h \
                    selectionlistmodel.h \
                    defaultinputmethod.h \
                    abstractinputpanel.h \
                    virtualkeyboarddebug.h \
                    enterkeyaction.h \
                    enterkeyactionattachedtype.h \
                    settings.h \
                    virtualkeyboardsettings.h \
                    plugin.h \
                    trace.h \
                
                RESOURCES += \
                    content/styles/default/default_style.qrc \
                    content/styles/retro/retro_style.qrc \
                    content/content.qrc
                
                LAYOUT_FILES += \
                    content/layouts/en_GB/dialpad.qml \
                    content/layouts/en_GB/digits.qml \
                    content/layouts/en_GB/handwriting.qml \
                    content/layouts/en_GB/numbers.qml \
                    content/layouts/en_GB/symbols.qml
                
                contains(CONFIG, lang-en.*) {
                    LAYOUT_FILES += \
                        content/layouts/en_GB/main.qml
                }
                contains(CONFIG, lang-ar.*) {
                    LAYOUT_FILES += \
                        content/layouts/ar_AR/digits.qml \
                        content/layouts/ar_AR/main.qml \
                        content/layouts/ar_AR/numbers.qml \
                        content/layouts/ar_AR/symbols.qml
                }
                contains(CONFIG, lang-da.*) {
                    LAYOUT_FILES += \
                        content/layouts/da_DK/main.qml \
                        content/layouts/da_DK/symbols.qml
                t9write: LAYOUT_FILES += \
                        content/layouts/da_DK/handwriting.qml
                }
                contains(CONFIG, lang-de.*) {
                    LAYOUT_FILES += \
                        content/layouts/de_DE/main.qml \
                        content/layouts/de_DE/symbols.qml
                t9write: LAYOUT_FILES += \
                        content/layouts/de_DE/handwriting.qml
                }
                contains(CONFIG, lang-es.*) {
                    LAYOUT_FILES += \
                        content/layouts/es_ES/main.qml \
                        content/layouts/es_ES/symbols.qml
                t9write: LAYOUT_FILES += \
                        content/layouts/es_ES/handwriting.qml
                }
                contains(CONFIG, lang-fa.*) {
                    LAYOUT_FILES += \
                        content/layouts/fa_FA/digits.qml \
                        content/layouts/fa_FA/main.qml \
                        content/layouts/fa_FA/numbers.qml \
                        content/layouts/fa_FA/symbols.qml
                }
                contains(CONFIG, lang-fi.*) {
                    LAYOUT_FILES += \
                        content/layouts/fi_FI/main.qml \
                        content/layouts/fi_FI/symbols.qml
                t9write: LAYOUT_FILES += \
                        content/layouts/fi_FI/handwriting.qml
                }
                contains(CONFIG, lang-fr.*) {
                    LAYOUT_FILES += \
                        content/layouts/fr_FR/main.qml \
                        content/layouts/fr_FR/symbols.qml
                t9write: LAYOUT_FILES += \
                        content/layouts/fr_FR/handwriting.qml
                }
                contains(CONFIG, lang-hi.*) {
                    LAYOUT_FILES += \
                        content/layouts/hi_IN/main.qml \
                        content/layouts/hi_IN/symbols.qml
                }
                contains(CONFIG, lang-it.*) {
                    LAYOUT_FILES += \
                        content/layouts/it_IT/main.qml \
                        content/layouts/it_IT/symbols.qml
                t9write: LAYOUT_FILES += \
                        content/layouts/it_IT/handwriting.qml
                }
                contains(CONFIG, lang-ja.*) {
                    LAYOUT_FILES += \
                        content/layouts/ja_JP/main.qml \
                        content/layouts/ja_JP/symbols.qml
                }
                contains(CONFIG, lang-ko.*) {
                    LAYOUT_FILES += \
                        content/layouts/ko_KR/main.qml \
                        content/layouts/ko_KR/symbols.qml
                }
                contains(CONFIG, lang-nb.*) {
                    LAYOUT_FILES += \
                        content/layouts/nb_NO/main.qml \
                        content/layouts/nb_NO/symbols.qml
                t9write: LAYOUT_FILES += \
                        content/layouts/nb_NO/handwriting.qml
                }
                contains(CONFIG, lang-pl.*) {
                    LAYOUT_FILES += \
                        content/layouts/pl_PL/main.qml \
                        content/layouts/pl_PL/symbols.qml
                t9write: LAYOUT_FILES += \
                        content/layouts/pl_PL/handwriting.qml
                }
                contains(CONFIG, lang-pt.*) {
                    LAYOUT_FILES += \
                        content/layouts/pt_PT/main.qml \
                        content/layouts/pt_PT/symbols.qml
                t9write: LAYOUT_FILES += \
                        content/layouts/pt_PT/handwriting.qml
                }
                contains(CONFIG, lang-ro.*) {
                    LAYOUT_FILES += \
                        content/layouts/ro_RO/main.qml \
                        content/layouts/ro_RO/symbols.qml \
                        content/layouts/ro_RO/handwriting.qml
                }
                contains(CONFIG, lang-ru.*) {
                    LAYOUT_FILES += \
                        content/layouts/ru_RU/main.qml \
                        content/layouts/ru_RU/symbols.qml
                t9write: LAYOUT_FILES += \
                        content/layouts/ru_RU/handwriting.qml
                }
                contains(CONFIG, lang-sv.*) {
                    LAYOUT_FILES += \
                        content/layouts/sv_SE/main.qml \
                        content/layouts/sv_SE/symbols.qml
                t9write: LAYOUT_FILES += \
                        content/layouts/sv_SE/handwriting.qml
                }
                contains(CONFIG, lang-zh(_CN)?) {
                    LAYOUT_FILES += \
                        content/layouts/zh_CN/main.qml \
                        content/layouts/zh_CN/symbols.qml
                }
                contains(CONFIG, lang-zh(_TW)?) {
                    LAYOUT_FILES += \
                        content/layouts/zh_TW/main.qml \
                        content/layouts/zh_TW/symbols.qml
                }
                
                retro-style {
                    DEFINES += QT_VIRTUALKEYBOARD_DEFAULT_STYLE=\\\"retro\\\"
                } else {
                    DEFINES += QT_VIRTUALKEYBOARD_DEFAULT_STYLE=\\\"default\\\"
                }
                
                OTHER_FILES += \
                    content/styles/default/*.qml \
                    content/styles/retro/*.qml \
                    content/*.qml \
                    content/components/*.qml \
                    qtvirtualkeyboard.json
                
                !disable-desktop:isEmpty(CROSS_COMPILE):!qnx {
                    SOURCES += desktopinputpanel.cpp inputview.cpp
                    HEADERS += desktopinputpanel.h inputview.h
                    DEFINES += QT_VIRTUALKEYBOARD_DESKTOP
                    !no-pkg-config:packagesExist(xcb) {
                        PKGCONFIG += xcb xcb-xfixes
                        DEFINES += QT_VIRTUALKEYBOARD_HAVE_XCB
                    }
                }
                SOURCES += appinputpanel.cpp
                HEADERS += appinputpanel.h
                
                qtquickcompiler: DEFINES += COMPILING_QML
                
                !disable-hunspell {
                    exists(3rdparty/hunspell/src/hunspell/hunspell.h) {
                        SOURCES += hunspellinputmethod.cpp hunspellinputmethod_p.cpp hunspellworker.cpp
                        HEADERS += hunspellinputmethod.h hunspellinputmethod_p.h hunspellworker.h
                        DEFINES += HAVE_HUNSPELL
                        QMAKE_USE += hunspell
                        exists(3rdparty/hunspell/data) {
                            hunspell_data.files = 3rdparty/hunspell/data/*.dic 3rdparty/hunspell/data/*.aff
                            hunspell_data.path = $$DATAPATH/hunspell
                            INSTALLS += hunspell_data
                            !prefix_build: COPIES += hunspell_data
                        } else {
                            error("Hunspell dictionaries are missing! Please copy .dic and .aff" \
                                  "files to src/virtualkeyboard/3rdparty/hunspell/data directory.")
                        }
                    } else:!no-pkg-config:packagesExist(hunspell) {
                        SOURCES += hunspellinputmethod.cpp hunspellinputmethod_p.cpp hunspellworker.cpp
                        HEADERS += hunspellinputmethod.h hunspellinputmethod_p.h hunspellworker.h
                        DEFINES += HAVE_HUNSPELL
                        PKGCONFIG += hunspell
                    } else {
                        message("Hunspell not found! Spell correction will not be available.")
                    }
                }
                
                pinyin {
                    SOURCES += \
                        pinyininputmethod.cpp \
                        pinyindecoderservice.cpp
                    HEADERS += \
                        pinyininputmethod.h \
                        pinyindecoderservice.h
                    DEFINES += HAVE_PINYIN
                    QMAKE_USE += pinyin
                    pinyin_data.files = $$PWD/3rdparty/pinyin/data/dict_pinyin.dat
                    pinyin_data.path = $$DATAPATH/pinyin
                    INSTALLS += pinyin_data
                    !prefix_build: COPIES += pinyin_data
                }
                
                tcime {
                    SOURCES += \
                        tcinputmethod.cpp
                    HEADERS += \
                        tcinputmethod.h
                    DEFINES += HAVE_TCIME
                    cangjie: DEFINES += HAVE_TCIME_CANGJIE
                    zhuyin: DEFINES += HAVE_TCIME_ZHUYIN
                    QMAKE_USE += tcime
                    tcime_data.files = \
                        $$PWD/3rdparty/tcime/data/qt/dict_phrases.dat
                    cangjie: tcime_data.files += \
                        $$PWD/3rdparty/tcime/data/qt/dict_cangjie.dat
                    zhuyin: tcime_data.files += \
                        $$PWD/3rdparty/tcime/data/qt/dict_zhuyin.dat
                    tcime_data.path = $$DATAPATH/tcime
                    INSTALLS += tcime_data
                    !prefix_build: COPIES += tcime_data
                }
                
                hangul {
                    SOURCES += \
                        hangulinputmethod.cpp \
                        hangul.cpp
                    HEADERS += \
                        hangulinputmethod.h \
                        hangul.h
                    DEFINES += HAVE_HANGUL
                }
                
                openwnn {
                    SOURCES += openwnninputmethod.cpp
                    HEADERS += openwnninputmethod.h
                    DEFINES += HAVE_OPENWNN
                    QMAKE_USE += openwnn
                }
                
                lipi-toolkit:t9write: \
                    error("Conflicting configuration flags: lipi-toolkit and t9write." \
                          "Please use either one, but not both at the same time.")
                
                lipi-toolkit {
                    CONFIG += exceptions
                    SOURCES += \
                        lipiinputmethod.cpp \
                        lipisharedrecognizer.cpp \
                        lipiworker.cpp
                    HEADERS += \
                        lipiinputmethod.h \
                        lipisharedrecognizer.h \
                        lipiworker.h
                    DEFINES += HAVE_LIPI_TOOLKIT
                    INCLUDEPATH += \
                        3rdparty/lipi-toolkit/src/include \
                        3rdparty/lipi-toolkit/src/util/lib
                    LIBS += -L$$OUT_PWD/../../lib \
                        -lshaperecommon$$qtPlatformTargetSuffix() \
                        -lltkcommon$$qtPlatformTargetSuffix() \
                        -lltkutil$$qtPlatformTargetSuffix()
                    win32: LIBS += Advapi32.lib
                    else: LIBS += -ldl
                    record-trace-input: DEFINES += QT_VIRTUALKEYBOARD_LIPI_RECORD_TRACE_INPUT
                }
                
                t9write {
                    include(3rdparty/t9write/t9write-build.pri)
                    equals(T9WRITE_FOUND, 0): \
                        error("T9Write SDK could not be found. Please make sure you have extracted" \
                              "the contents of the T9Write SDK to $$PWD/3rdparty/t9write")
                    SOURCES += \
                        t9writeinputmethod.cpp \
                        t9writeworker.cpp
                    HEADERS += \
                        t9writeinputmethod.h \
                        t9writeworker.h
                    DEFINES += HAVE_T9WRITE
                    QMAKE_USE += t9write_db
                    INCLUDEPATH += $$T9WRITE_INCLUDE_DIRS
                    LIBS += $$T9WRITE_ALPHABETIC_LIBS
                }
                
                arrow-key-navigation: DEFINES += QT_VIRTUALKEYBOARD_ARROW_KEY_NAVIGATION
                
                include(generateresource.pri)
                
                RESOURCES += $$generate_resource(layouts.qrc, $$LAYOUT_FILES, /QtQuick/VirtualKeyboard)
                
                PLUGIN_TYPE = platforminputcontexts
                PLUGIN_EXTENDS = -
                PLUGIN_CLASS_NAME = QVirtualKeyboardPlugin
                load(qt_plugin)
                

                Just added CONFIG += lang-ar_AR lang-fr_FR , to get the keyboard in arabic and french,
                and i didnt change any other line,
                its nt compiling in Qt creator,

                I am not using out of source, and i deleted .pro.user file,deleted build folder then tries to compile, still no change, its not compiling.

                Thanks,

                Pradeep Kumar
                Qt,QML Developer

                1 Reply Last reply
                0
                • michaelLM Offline
                  michaelLM Offline
                  michaelL
                  wrote on last edited by
                  #53

                  @Pradeep-Kumar dont use that project but the qtvirtualkeyboard.pro project that is above that directory and inside the .pro looks like this:

                  OTHER_FILES += README.md

                  load(qt_parts)
                  QT += core
                  CONFIG+= lang-all

                  add one more step "make" in build and put in arguments "install"

                  For me the project location is "Qt5.7.1/5.7/Src/qtvirtualkeyboard/qtvirtualkeyboard.pro"
                  What you are building is located on "Qt5.7.1/5.7/Src/qtvirtualkeyboard/src/virtualkeyboard/virtualkeyboard.pro"

                  I am able to see all languages on my linux desktop.

                  I also compiled with same QTCreator on desktop using qmake for my embedded linux and could see all languages except chinese/korea/japan/tawain. I keep getting "japaneseInputMethos is not a type" and so on.
                  Could anyone get those to work? On my PC they work but not on embedded.
                  I followed this section http://doc.qt.io/qt-5/qtvirtualkeyboard-deployment-guide.html and deploy the plugins to my embedded linux but i get all languages except those. Is there any other files i have to deploy for Japan/Korea/Chinese/Tawain languages?
                  Any idea?

                  1 Reply Last reply
                  2
                  • Pradeep KumarP Offline
                    Pradeep KumarP Offline
                    Pradeep Kumar
                    wrote on last edited by
                    #54

                    Hi,

                    @michaelL

                    so what is the difference between the qtvirtualkeyboard in the path

                    Qt5.7.0/5.7/Src/qtvirtualkeyboard/src/virtualkeyboard/virtualkeyboard.pro

                    and

                    in Qt5.7.0/5.7/Src/qtvirtualkeyboard/qtvirtualkeyboard.pro,

                    And i am not getting in respective languages, from the path
                    Qt5.7.0/5.7/Src/qtvirtualkeyboard/qtvirtualkeyboard.pro

                    Are u getting?

                    Thanks,

                    Pradeep Kumar
                    Qt,QML Developer

                    1 Reply Last reply
                    2
                    • michaelLM Offline
                      michaelLM Offline
                      michaelL
                      wrote on last edited by
                      #55

                      @Pradeep-Kumar the Qt5.7.0/5.7/Src/qtvirtualkeyboard/qtvirtualkeyboard.pro is the main project for all of the inside projects. You have to build it so that all files/languages/layout and so on are compiled too. I think the projects inside have dependencies of the others.
                      I am getting all languages on my PC running Qt5.7.1
                      If you use QT Creator to make the project you have to add a "Build step" in "build settings" under "build setps"
                      The step you add is "make" and type in arguments "install".
                      So qt creator will do qmake->make->make install
                      If it does it with no error you can open the basic example project and you will get all languages.

                      1 Reply Last reply
                      0

                      • Login

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • Users
                      • Groups
                      • Search
                      • Get Qt Extensions
                      • Unsolved