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
    #44

    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,

    Pradeep Kumar
    Qt,QML Developer

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

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

      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
        #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 Online
              jsulmJ Online
              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