Unsolved Example of Virtual Keyboard showing in different languages
-
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,
-
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.
-
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 -
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 1I am getting the above errors, can u help me out,
Please provide guidance,
Thanks,
-
-
HI,
I installed latest g++ and gcc versions and
- used qmake.
- then make clean.
- then make.
- make install.
Then ran the basic program which is present in the path
/home/user/Qt5.8.0/5.8/Src/qtvirtualkeyboard/examples/virtualkeyboard/basicI 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/virtualkeyboardas 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,
-
@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,
-
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,
-
@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?
-
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,
-
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 ? -
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 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-alladd 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? -
Hi,
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.proAre u getting?
Thanks,
-
@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.