qtvirtualkeyboard Chinese word candidate list on embedded linux
-
Hello,
I have been ported QT 5.11.3 to my own embedded linux platform, based on ARM v7a chip.
This is running on windowns7 created by QTCreator 4.9.2 , with QT 5.11.3.
I can select the word what i need from upside candidate list.
But when I compile and run it on my embedded system, select bar won't appear after i typed the spell.
this is my code:
- .pro
QT += quick qml CONFIG += c++11 QTPLUGIN+=qtvirtualkeyboardplugin QT+=svg QT_IM_MODULE=qtvirtualkeyboard myapp # The following define makes your compiler emit warnings if you use # any Qt feature that has been marked deprecated (the exact warnings # depend on your compiler). Refer to the documentation for the # deprecated API to know how to port your code away from it. DEFINES += QT_DEPRECATED_WARNINGS # You can also make your code fail to compile if it uses deprecated APIs. # In order to do so, uncomment the following line. # You can also select to disable deprecated APIs only up to a certain version of Qt. #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ main.cpp RESOURCES += qml.qrc # Additional import path used to resolve QML modules in Qt Creator's code model QML_IMPORT_PATH = # Additional import path used to resolve QML modules just for Qt Quick Designer QML_DESIGNER_IMPORT_PATH = # Default rules for deployment. qnx: target.path = /tmp/$${TARGET}/bin else: unix:!android: target.path = /opt/$${TARGET}/bin !isEmpty(target.path): INSTALLS += target
- main.cpp
#include <QGuiApplication> #include <QQmlApplicationEngine> #include <QFont> int main(int argc, char *argv[]) { QFont font; font.setPointSize(10); font.setFamily("MSJH"); qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard")); QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); QGuiApplication app(argc, argv); app.setFont(font); QQmlApplicationEngine engine; const QUrl url(QStringLiteral("qrc:/main.qml")); QObject::connect(&engine, &QQmlApplicationEngine::objectCreated, &app, [url](QObject *obj, const QUrl &objUrl) { if (!obj && url == objUrl) QCoreApplication::exit(-1); }, Qt::QueuedConnection); engine.load(url); return app.exec(); }
- main.qml
import QtQuick 2.10 import QtQuick.Window 2.10 import QtQuick.Controls 2.2 import QtQuick.VirtualKeyboard 2.3 Window { width:1024 height: 600 id:root visible:true Rectangle{ anchors.fill:parent } TextField{ id:key anchors.top: parent.top anchors.horizontalCenter: parent.horizontalCenter anchors.bottom: InputPanel.top focus:true } InputPanel{ id:vkb visible:true active:true anchors.fill:parent anchors.left: parent.left anchors.right: parent.right } }
- configuration when cross compile QT5.11.3
./configure -release -sysroot /home/admin/Desktop/file_partition/sysroot -prefix /release -extprefix /home/admin/Desktop/file_partition/release_11_3 -opensource -make libs -xplatform linux-arm-gnueabi-g++ -no-pch -qt-libjpeg -no-opengl -skip qt3d -skip qtcanvas3d -skip qtpurchasing -no-sse2 -no-openssl -no-iconv -nomake examples -skip qtserialbus -evdev -I/home/admin/Desktop/qtsource/corssbin/ts_release/include -L/home/admin/Desktop/qtsource/corssbin/ts_release/lib -make libs
- included parts
Building on: linux-g++ (x86_64, CPU features: mmx sse sse2) Building for: linux-arm-gnueabi-g++ (arm, CPU features: <none>) Configuration: cross_compile compile_examples enable_new_dtags largefile shared rpath release c++11 c++14 concurrent dbus reduce_exports stl Build options: Mode ................................... release Optimize release build for size ........ no Building shared libraries .............. yes Using C++ standard ..................... C++14 Using ccache ........................... no Using gold linker ...................... no Using new DTAGS ........................ yes Using precompiled headers .............. no Using LTCG ............................. no Target compiler supports: NEON ................................. no Build parts ............................ libs libs Qt modules and options: Qt Concurrent .......................... yes Qt D-Bus ............................... yes Qt D-Bus directly linked to libdbus .... yes Qt Gui ................................. yes Qt Network ............................. yes Qt Sql ................................. yes Qt Testlib ............................. yes Qt Widgets ............................. yes Qt Xml ................................. yes Support enabled for: Using pkg-config ....................... yes udev ................................... yes Using system zlib ...................... yes Qt Core: DoubleConversion ....................... yes Using system DoubleConversion ........ no GLib ................................... yes iconv .................................. no ICU .................................... yes Tracing backend ........................ <none> Logging backends: journald ............................. no syslog ............................... no slog2 ................................ no Using system PCRE2 ..................... no Qt Network: getifaddrs() ........................... yes IPv6 ifname ............................ yes libproxy ............................... no Linux AF_NETLINK ....................... no OpenSSL ................................ no Qt directly linked to OpenSSL ........ no OpenSSL 1.1 ............................ no SCTP ................................... no Use system proxies ..................... yes Qt Gui: Accessibility .......................... yes FreeType ............................... yes Using system FreeType ................ yes HarfBuzz ............................... yes Using system HarfBuzz ................ no Fontconfig ............................. yes Image formats: GIF .................................. yes ICO .................................. yes JPEG ................................. yes Using system libjpeg ............... no PNG .................................. yes Using system libpng ................ yes EGL .................................... no OpenVG ................................. no OpenGL: Desktop OpenGL ....................... no OpenGL ES 2.0 ........................ no OpenGL ES 3.0 ........................ no OpenGL ES 3.1 ........................ no OpenGL ES 3.2 ........................ no Vulkan ................................. no Session Management ..................... yes Features used by QPA backends: evdev .................................. yes libinput ............................... no INTEGRITY HID .......................... no mtdev .................................. no tslib .................................. yes xkbcommon-evdev ........................ no QPA backends: DirectFB ............................... no EGLFS .................................. no LinuxFB ................................ yes VNC .................................... yes Mir client ............................. no Qt Widgets: GTK+ ................................... no Styles ................................. Fusion Windows Qt PrintSupport: CUPS ................................... no Qt Sql: DB2 (IBM) .............................. no InterBase .............................. no MySql .................................. no OCI (Oracle) ........................... no ODBC ................................... no PostgreSQL ............................. no SQLite2 ................................ no SQLite ................................. yes Using system provided SQLite ......... no TDS (Sybase) ........................... no Qt Testlib: Tester for item models ................. yes QtXmlPatterns: XML schema support ..................... yes Qt QML: QML network support .................... yes QML debugging and profiling support .... yes QML delegate model ..................... yes Qt Quick: Direct3D 12 ............................ no AnimatedImage item ..................... yes Canvas item ............................ yes Support for Qt Quick Designer .......... yes Flipable item .......................... yes GridView item .......................... yes ListView item .......................... yes Path support ........................... yes PathView item .......................... yes Positioner items ....................... yes Repeater item .......................... yes ShaderEffect item ...................... yes Sprite item ............................ yes Qt Gamepad: SDL2 ................................... no Qt Wayland Client ........................ no Qt Wayland Compositor .................... no Qt Bluetooth: BlueZ .................................. yes BlueZ Low Energy ....................... yes Linux Crypto API ....................... yes WinRT Bluetooth API (desktop & UWP) .... no Qt Sensors: sensorfw ............................... no Qt Quick Controls 2: Styles ................................. Default Fusion Imagine Material Universal Qt Quick Templates 2: Hover support .......................... yes Multi-touch support .................... yes Qt Positioning: Gypsy GPS Daemon ....................... no WinRT Geolocation API .................. no Qt Location: Qt.labs.location experimental QML plugin . yes Geoservice plugins: OpenStreetMap ........................ yes HERE ................................. yes Esri ................................. yes Mapbox ............................... yes MapboxGL ............................. no Itemsoverlay ......................... yes Qt Multimedia: ALSA ................................... yes GStreamer 1.0 .......................... no GStreamer 0.10 ......................... yes Video for Linux ........................ yes OpenAL ................................. no PulseAudio ............................. no Resource Policy (libresourceqt5) ....... no Windows Audio Services ................. no DirectShow ............................. no Windows Media Foundation ............... no Qt WebEngine: Embedded build ......................... yes Pepper Plugins ......................... no Printing and PDF ....................... no Proprietary Codecs ..................... no Spellchecker ........................... yes Native Spellchecker .................... no WebRTC ................................. no Use System Ninja ....................... no Geolocation ............................ yes Use v8 snapshot ........................ yes Building v8 snapshot supported ......... no Use ALSA ............................... yes Use PulseAudio ......................... no Optional system libraries used: re2 .................................. no icu .................................. no libwebp, libwebpmux and libwebpdemux . no opus ................................. no ffmpeg ............................... no libvpx ............................... no snappy ............................... no libsrtp .............................. no glib ................................. yes zlib ................................. yes minizip .............................. no libevent ............................. no jsoncpp .............................. no protobuf ............................. no libxml2 and libxslt .................. no lcms2 ................................ no png .................................. yes JPEG ................................. no harfbuzz ............................. no freetype ............................. yes Required system libraries: fontconfig ........................... yes dbus ................................. yes nss .................................. no khr .................................. no glibc ................................ yes Required system libraries for qpa-xcb: libdrm ............................... no xcomposite ........................... no xcursor .............................. no xi ................................... no xrandr ............................... no xtst ................................. no
- platform environment before executing programe.
export LD_LIBRARY_PATH='/emmc/ts_lib/lib:/emmc/qt_dir/lib:/emmc/qt_dir/plugins/platforms:/lib:/usr/lib:/usr/local/lib' export PATH='/usr/bin:/bin:/usr/sbin:/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin' export QT_ROOT='/emmc/qt_dir' export QML2_IMPORT_PATH='/emmc/qt_dir/qml' export QML_IMPORT_PATH='/emmc/qt_dir/qml' export QT_DEBUG_PLUGINS='1' export QT_IM_MODULE='qtvirtualkeyboard' export QT_PLUGIN_PATH='/emmc/qt_dir/plugins' export QT_QPA_FB_DRM='2' export QT_QPA_FB_TSLIB='1' export QT_QPA_FONTDIR='/emmc/qt_dir/lib/fonts' export QT_QPA_GENERIC_PLUGINS='tslib' export QT_QPA_PLATFORM='linuxfb:fb=/dev/fb0' export QT_QPA_PLATFORM_PLUGIN_PATH='/emmc/qt_dir/plugins/platforms' export QT_VIRTUALKEYBOARD_PINYIN_DICTIONARY='/emmc/qt_dir/qtvirtualkeyboard/pinyin/dict_pinyin.dat' export QT_VIRTUALKEYBOARD_ZHUYIN_DICTIONARY='/emmc/qt_dir/qtvirtualkeyboard/tcime/dict_zhuyin.dat' export TSLIB_CONFFILE='/emmc/ts_lib/etc/ts.conf' export TSLIB_CONSOLEDEVICE='none' export TSLIB_FBDEVICE='/dev/fb0' export TSLIB_PLUGINDIR='/emmc/ts_lib/lib/ts' export TSLIB_ROOT='/emmc/ts_lib' export TSLIB_TSDEVICE='/dev/input/event2'
checked DICTIONARY file ,it's exist.
- debug information
QFactoryLoader::QFactoryLoader() checking directory path "/emmc/qt_dir/plugins/platforms" ... QFactoryLoader::QFactoryLoader() looking at "/emmc/qt_dir/plugins/platforms/libqlinuxfb.so" Found metadata in lib /emmc/qt_dir/plugins/platforms/libqlinuxfb.so, metadata= { "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3", "MetaData": { "Keys": [ "linuxfb" ] }, "className": "QLinuxFbIntegrationPlugin", "debug": false, "version": 330499 } Got keys from plugin meta data ("linuxfb") QFactoryLoader::QFactoryLoader() looking at "/emmc/qt_dir/plugins/platforms/libqminimal.so" Found metadata in lib /emmc/qt_dir/plugins/platforms/libqminimal.so, metadata= { "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3", "MetaData": { "Keys": [ "minimal" ] }, "className": "QMinimalIntegrationPlugin", "debug": false, "version": 330499 } Got keys from plugin meta data ("minimal") QFactoryLoader::QFactoryLoader() looking at "/emmc/qt_dir/plugins/platforms/libqoffscreen.so" Found metadata in lib /emmc/qt_dir/plugins/platforms/libqoffscreen.so, metadata= { "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3", "MetaData": { "Keys": [ "offscreen" ] }, "className": "QOffscreenIntegrationPlugin", "debug": false, "version": 330499 } Got keys from plugin meta data ("offscreen") QFactoryLoader::QFactoryLoader() looking at "/emmc/qt_dir/plugins/platforms/libqvnc.so" Found metadata in lib /emmc/qt_dir/plugins/platforms/libqvnc.so, metadata= { "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3", "MetaData": { "Keys": [ "vnc" ] }, "className": "QVncIntegrationPlugin", "debug": false, "version": 330499 } Got keys from plugin meta data ("vnc") QFactoryLoader::QFactoryLoader() checking directory path "/emmc/qt_dir/plugins" ... QFactoryLoader::QFactoryLoader() checking directory path "/root/qts" ... QFactoryLoader::QFactoryLoader() checking directory path "/emmc/qt_dir/plugins/platforms/platforms" ... QFactoryLoader::QFactoryLoader() checking directory path "/emmc/qt_dir/plugins/platforms" ... QFactoryLoader::QFactoryLoader() looking at "/emmc/qt_dir/plugins/platforms/libqlinuxfb.so" Got keys from plugin meta data ("linuxfb") QFactoryLoader::QFactoryLoader() looking at "/emmc/qt_dir/plugins/platforms/libqminimal.so" Got keys from plugin meta data ("minimal") QFactoryLoader::QFactoryLoader() looking at "/emmc/qt_dir/plugins/platforms/libqoffscreen.so" Got keys from plugin meta data ("offscreen") QFactoryLoader::QFactoryLoader() looking at "/emmc/qt_dir/plugins/platforms/libqvnc.so" Got keys from plugin meta data ("vnc") QFactoryLoader::QFactoryLoader() checking directory path "/root/qts/platforms" ... loaded library "/emmc/qt_dir/plugins/platforms/libqlinuxfb.so" QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root' QFactoryLoader::QFactoryLoader() checking directory path "/emmc/qt_dir/plugins/platforms/platforminputcontexts" ... QFactoryLoader::QFactoryLoader() checking directory path "/emmc/qt_dir/plugins/platforminputcontexts" ... QFactoryLoader::QFactoryLoader() looking at "/emmc/qt_dir/plugins/platforminputcontexts/libibusplatforminputcontextplugin.so" Found metadata in lib /emmc/qt_dir/plugins/platforminputcontexts/libibusplatforminputcontextplugin.so, metadata= { "IID": "org.qt-project.Qt.QPlatformInputContextFactoryInterface.5.1", "MetaData": { "Keys": [ "ibus" ] }, "className": "QIbusPlatformInputContextPlugin", "debug": false, "version": 330499 } Got keys from plugin meta data ("ibus") QFactoryLoader::QFactoryLoader() looking at "/emmc/qt_dir/plugins/platforminputcontexts/libqtvirtualkeyboardplugin.so" Found metadata in lib /emmc/qt_dir/plugins/platforminputcontexts/libqtvirtualkeyboardplugin.so, metadata= { "IID": "org.qt-project.Qt.QPlatformInputContextFactoryInterface.5.1", "MetaData": { "Keys": [ "qtvirtualkeyboard" ] }, "className": "QVirtualKeyboardPlugin", "debug": false, "version": 330499 } Got keys from plugin meta data ("qtvirtualkeyboard") QFactoryLoader::QFactoryLoader() checking directory path "/root/qts/platforminputcontexts" ... loaded library "/emmc/qt_dir/plugins/platforminputcontexts/libqtvirtualkeyboardplugin.so" QFactoryLoader::QFactoryLoader() checking directory path "/emmc/qt_dir/plugins/platforms/generic" ... QFactoryLoader::QFactoryLoader() checking directory path "/emmc/qt_dir/plugins/generic" ... QFactoryLoader::QFactoryLoader() looking at "/emmc/qt_dir/plugins/generic/libqevdevkeyboardplugin.so" Found metadata in lib /emmc/qt_dir/plugins/generic/libqevdevkeyboardplugin.so, metadata= { "IID": "org.qt-project.Qt.QGenericPluginFactoryInterface", "MetaData": { "Keys": [ "EvdevKeyboard" ] }, "className": "QEvdevKeyboardPlugin", "debug": false, "version": 330499 } Got keys from plugin meta data ("evdevkeyboard") QFactoryLoader::QFactoryLoader() looking at "/emmc/qt_dir/plugins/generic/libqevdevmouseplugin.so" Found metadata in lib /emmc/qt_dir/plugins/generic/libqevdevmouseplugin.so, metadata= { "IID": "org.qt-project.Qt.QGenericPluginFactoryInterface", "MetaData": { "Keys": [ "EvdevMouse" ] }, "className": "QEvdevMousePlugin", "debug": false, "version": 330499 } Got keys from plugin meta data ("evdevmouse") QFactoryLoader::QFactoryLoader() looking at "/emmc/qt_dir/plugins/generic/libqevdevtabletplugin.so" Found metadata in lib /emmc/qt_dir/plugins/generic/libqevdevtabletplugin.so, metadata= { "IID": "org.qt-project.Qt.QGenericPluginFactoryInterface", "MetaData": { "Keys": [ "EvdevTablet" ] }, "className": "QEvdevTabletPlugin", "debug": false, "version": 330499 } Got keys from plugin meta data ("evdevtablet") QFactoryLoader::QFactoryLoader() looking at "/emmc/qt_dir/plugins/generic/libqevdevtouchplugin.so" Found metadata in lib /emmc/qt_dir/plugins/generic/libqevdevtouchplugin.so, metadata= { "IID": "org.qt-project.Qt.QGenericPluginFactoryInterface", "MetaData": { "Keys": [ "EvdevTouch" ] }, "className": "QEvdevTouchScreenPlugin", "debug": false, "version": 330499 } Got keys from plugin meta data ("evdevtouch") QFactoryLoader::QFactoryLoader() looking at "/emmc/qt_dir/plugins/generic/libqtslibplugin.so" Found metadata in lib /emmc/qt_dir/plugins/generic/libqtslibplugin.so, metadata= { "IID": "org.qt-project.Qt.QGenericPluginFactoryInterface", "MetaData": { "Keys": [ "Tslib", "TslibRaw" ] }, "className": "QTsLibPlugin", "debug": false, "version": 330499 } Got keys from plugin meta data ("tslib", "tslibraw") QFactoryLoader::QFactoryLoader() looking at "/emmc/qt_dir/plugins/generic/libqtuiotouchplugin.so" Found metadata in lib /emmc/qt_dir/plugins/generic/libqtuiotouchplugin.so, metadata= { "IID": "org.qt-project.Qt.QGenericPluginFactoryInterface", "MetaData": { "Keys": [ "TuioTouch" ] }, "className": "QTuioTouchPlugin", "debug": false, "version": 330499 } Got keys from plugin meta data ("tuiotouch") QFactoryLoader::QFactoryLoader() checking directory path "/root/qts/generic" ... loaded library "/emmc/qt_dir/plugins/generic/libqtslibplugin.so" Found metadata in lib /emmc/qt_dir/qml/QtQuick.2/libqtquick2plugin.so, metadata= { "IID": "org.qt-project.Qt.QQmlExtensionInterface/1.0", "MetaData": { }, "className": "QtQuick2Plugin", "debug": false, "uri": [ "QtQuick.2" ], "version": 330499 } loaded library "/emmc/qt_dir/qml/QtQuick.2/libqtquick2plugin.so" Found metadata in lib /emmc/qt_dir/qml/QtQuick/Window.2/libwindowplugin.so, metadata= { "IID": "org.qt-project.Qt.QQmlExtensionInterface/1.0", "MetaData": { }, "className": "QtQuick2WindowPlugin", "debug": false, "uri": [ "QtQuick.Window.2" ], "version": 330499 } loaded library "/emmc/qt_dir/qml/QtQuick/Window.2/libwindowplugin.so" Found metadata in lib /emmc/qt_dir/qml/QtQuick/Controls.2/libqtquickcontrols2plugin.so, metadata= { "IID": "org.qt-project.Qt.QQmlExtensionInterface/1.0", "MetaData": { }, "className": "QtQuickControls2Plugin", "debug": false, "uri": [ "QtQuick.Controls.2" ], "version": 330499 } loaded library "/emmc/qt_dir/qml/QtQuick/Controls.2/libqtquickcontrols2plugin.so" Found metadata in lib /emmc/qt_dir/qml/QtQuick/Templates.2/libqtquicktemplates2plugin.so, metadata= { "IID": "org.qt-project.Qt.QQmlExtensionInterface/1.0", "MetaData": { }, "className": "QtQuickTemplates2Plugin", "debug": false, "uri": [ "QtQuick.Templates.2" ], "version": 330499 } loaded library "/emmc/qt_dir/qml/QtQuick/Templates.2/libqtquicktemplates2plugin.so" Found metadata in lib /emmc/qt_dir/qml/QtQuick/Layouts/libqquicklayoutsplugin.so, metadata= { "IID": "org.qt-project.Qt.QQmlExtensionInterface/1.0", "MetaData": { }, "className": "QtQuickLayoutsPlugin", "debug": false, "uri": [ "QtQuick.Layouts" ], "version": 330499 } loaded library "/emmc/qt_dir/qml/QtQuick/Layouts/libqquicklayoutsplugin.so" Found metadata in lib /emmc/qt_dir/qml/QtQuick/VirtualKeyboard/Styles/libqtvirtualkeyboardstylesplugin.so, metadata= { "IID": "org.qt-project.Qt.QQmlExtensionInterface/1.0", "MetaData": { }, "className": "QtVirtualKeyboardStylesPlugin", "debug": false, "uri": [ "QtQuick.VirtualKeyboard.Styles" ], "version": 330499 } loaded library "/emmc/qt_dir/qml/QtQuick/VirtualKeyboard/Styles/libqtvirtualkeyboardstylesplugin.so" Found metadata in lib /emmc/qt_dir/qml/Qt/labs/folderlistmodel/libqmlfolderlistmodelplugin.so, metadata= { "IID": "org.qt-project.Qt.QQmlExtensionInterface/1.0", "MetaData": { }, "className": "QmlFolderListModelPlugin", "debug": false, "uri": [ "Qt.labs.folderlistmodel" ], "version": 330499 } loaded library "/emmc/qt_dir/qml/Qt/labs/folderlistmodel/libqmlfolderlistmodelplugin.so" QFactoryLoader::QFactoryLoader() checking directory path "/emmc/qt_dir/plugins/platforms/imageformats" ... QFactoryLoader::QFactoryLoader() checking directory path "/emmc/qt_dir/plugins/imageformats" ... QFactoryLoader::QFactoryLoader() looking at "/emmc/qt_dir/plugins/imageformats/libqgif.so" Found metadata in lib /emmc/qt_dir/plugins/imageformats/libqgif.so, metadata= { "IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface", "MetaData": { "Keys": [ "gif" ], "MimeTypes": [ "image/gif" ] }, "className": "QGifPlugin", "debug": false, "version": 330499 } Got keys from plugin meta data ("gif") QFactoryLoader::QFactoryLoader() looking at "/emmc/qt_dir/plugins/imageformats/libqicns.so" Found metadata in lib /emmc/qt_dir/plugins/imageformats/libqicns.so, metadata= { "IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface", "MetaData": { "Keys": [ "icns" ], "MimeTypes": [ "image/x-icns" ] }, "className": "QICNSPlugin", "debug": false, "version": 330499 } Got keys from plugin meta data ("icns") QFactoryLoader::QFactoryLoader() looking at "/emmc/qt_dir/plugins/imageformats/libqico.so" Found metadata in lib /emmc/qt_dir/plugins/imageformats/libqico.so, metadata= { "IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface", "MetaData": { "Keys": [ "ico", "cur" ], "MimeTypes": [ "image/vnd.microsoft.icon", "image/vnd.microsoft.icon" ] }, "className": "QICOPlugin", "debug": false, "version": 330499 } Got keys from plugin meta data ("ico", "cur") QFactoryLoader::QFactoryLoader() looking at "/emmc/qt_dir/plugins/imageformats/libqjpeg.so" Found metadata in lib /emmc/qt_dir/plugins/imageformats/libqjpeg.so, metadata= { "IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface", "MetaData": { "Keys": [ "jpg", "jpeg" ], "MimeTypes": [ "image/jpeg", "image/jpeg" ] }, "className": "QJpegPlugin", "debug": false, "version": 330499 } Got keys from plugin meta data ("jpg", "jpeg") QFactoryLoader::QFactoryLoader() looking at "/emmc/qt_dir/plugins/imageformats/libqsvg.so" Found metadata in lib /emmc/qt_dir/plugins/imageformats/libqsvg.so, metadata= { "IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface", "MetaData": { "Keys": [ "svg", "svgz" ], "MimeTypes": [ "image/svg+xml", "image/svg+xml-compressed" ] }, "className": "QSvgPlugin", "debug": false, "version": 330499 } Got keys from plugin meta data ("svg", "svgz") QFactoryLoader::QFactoryLoader() looking at "/emmc/qt_dir/plugins/imageformats/libqtga.so" Found metadata in lib /emmc/qt_dir/plugins/imageformats/libqtga.so, metadata= { "IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface", "MetaData": { "Keys": [ "tga" ], "MimeTypes": [ "image/x-tga" ] }, "className": "QTgaPlugin", "debug": false, "version": 330499 } Got keys from plugin meta data ("tga") QFactoryLoader::QFactoryLoader() looking at "/emmc/qt_dir/plugins/imageformats/libqtiff.so" Found metadata in lib /emmc/qt_dir/plugins/imageformats/libqtiff.so, metadata= { "IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface", "MetaData": { "Keys": [ "tiff", "tif" ], "MimeTypes": [ "image/tiff", "image/tiff" ] }, "className": "QTiffPlugin", "debug": false, "version": 330499 } Got keys from plugin meta data ("tiff", "tif") QFactoryLoader::QFactoryLoader() looking at "/emmc/qt_dir/plugins/imageformats/libqwbmp.so" Found metadata in lib /emmc/qt_dir/plugins/imageformats/libqwbmp.so, metadata= { "IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface", "MetaData": { "Keys": [ "wbmp" ], "MimeTypes": [ "image/vnd.wap.wbmp" ] }, "className": "QWbmpPlugin", "debug": false, "version": 330499 } Got keys from plugin meta data ("wbmp") QFactoryLoader::QFactoryLoader() looking at "/emmc/qt_dir/plugins/imageformats/libqwebp.so" Found metadata in lib /emmc/qt_dir/plugins/imageformats/libqwebp.so, metadata= { "IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface", "MetaData": { "Keys": [ "webp" ], "MimeTypes": [ "image/webp" ] }, "className": "QWebpPlugin", "debug": false, "version": 330499 } Got keys from plugin meta data ("webp") QFactoryLoader::QFactoryLoader() checking directory path "/root/qts/imageformats" ... loaded library "/emmc/qt_dir/plugins/imageformats/libqgif.so" loaded library "/emmc/qt_dir/plugins/imageformats/libqicns.so" loaded library "/emmc/qt_dir/plugins/imageformats/libqico.so" loaded library "/emmc/qt_dir/plugins/imageformats/libqjpeg.so" loaded library "/emmc/qt_dir/plugins/imageformats/libqsvg.so" loaded library "/emmc/qt_dir/plugins/imageformats/libqtga.so" Cannot load library /emmc/qt_dir/plugins/imageformats/libqtiff.so: (libtiff.so.5: cannot open shared object file: No such file or directory) QLibraryPrivate::loadPlugin failed on "/emmc/qt_dir/plugins/imageformats/libqtiff.so" : "Cannot load library /emmc/qt_dir/plugins/imageformats/libqtiff.so: (libtiff.so.5: cannot open shared object file: No such file or directory)" loaded library "/emmc/qt_dir/plugins/imageformats/libqwbmp.so" loaded library "/emmc/qt_dir/plugins/imageformats/libqwebp.so" QFactoryLoader::QFactoryLoader() checking directory path "/emmc/qt_dir/plugins/platforms/accessiblebridge" ... QFactoryLoader::QFactoryLoader() checking directory path "/emmc/qt_dir/plugins/accessiblebridge" ... QFactoryLoader::QFactoryLoader() checking directory path "/root/qts/accessiblebridge" ... QFactoryLoader::QFactoryLoader() checking directory path "/emmc/qt_dir/plugins/platforms/accessible" ... QFactoryLoader::QFactoryLoader() checking directory path "/emmc/qt_dir/plugins/accessible" ... QFactoryLoader::QFactoryLoader() checking directory path "/root/qts/accessible" ...
-
Hello,
I have been ported QT 5.11.3 to my own embedded linux platform, based on ARM v7a chip.
This is running on windowns7 created by QTCreator 4.9.2 , with QT 5.11.3.
I can select the word what i need from upside candidate list.
But when I compile and run it on my embedded system, select bar won't appear after i typed the spell.
this is my code:
- .pro
QT += quick qml CONFIG += c++11 QTPLUGIN+=qtvirtualkeyboardplugin QT+=svg QT_IM_MODULE=qtvirtualkeyboard myapp # The following define makes your compiler emit warnings if you use # any Qt feature that has been marked deprecated (the exact warnings # depend on your compiler). Refer to the documentation for the # deprecated API to know how to port your code away from it. DEFINES += QT_DEPRECATED_WARNINGS # You can also make your code fail to compile if it uses deprecated APIs. # In order to do so, uncomment the following line. # You can also select to disable deprecated APIs only up to a certain version of Qt. #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ main.cpp RESOURCES += qml.qrc # Additional import path used to resolve QML modules in Qt Creator's code model QML_IMPORT_PATH = # Additional import path used to resolve QML modules just for Qt Quick Designer QML_DESIGNER_IMPORT_PATH = # Default rules for deployment. qnx: target.path = /tmp/$${TARGET}/bin else: unix:!android: target.path = /opt/$${TARGET}/bin !isEmpty(target.path): INSTALLS += target
- main.cpp
#include <QGuiApplication> #include <QQmlApplicationEngine> #include <QFont> int main(int argc, char *argv[]) { QFont font; font.setPointSize(10); font.setFamily("MSJH"); qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard")); QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); QGuiApplication app(argc, argv); app.setFont(font); QQmlApplicationEngine engine; const QUrl url(QStringLiteral("qrc:/main.qml")); QObject::connect(&engine, &QQmlApplicationEngine::objectCreated, &app, [url](QObject *obj, const QUrl &objUrl) { if (!obj && url == objUrl) QCoreApplication::exit(-1); }, Qt::QueuedConnection); engine.load(url); return app.exec(); }
- main.qml
import QtQuick 2.10 import QtQuick.Window 2.10 import QtQuick.Controls 2.2 import QtQuick.VirtualKeyboard 2.3 Window { width:1024 height: 600 id:root visible:true Rectangle{ anchors.fill:parent } TextField{ id:key anchors.top: parent.top anchors.horizontalCenter: parent.horizontalCenter anchors.bottom: InputPanel.top focus:true } InputPanel{ id:vkb visible:true active:true anchors.fill:parent anchors.left: parent.left anchors.right: parent.right } }
- configuration when cross compile QT5.11.3
./configure -release -sysroot /home/admin/Desktop/file_partition/sysroot -prefix /release -extprefix /home/admin/Desktop/file_partition/release_11_3 -opensource -make libs -xplatform linux-arm-gnueabi-g++ -no-pch -qt-libjpeg -no-opengl -skip qt3d -skip qtcanvas3d -skip qtpurchasing -no-sse2 -no-openssl -no-iconv -nomake examples -skip qtserialbus -evdev -I/home/admin/Desktop/qtsource/corssbin/ts_release/include -L/home/admin/Desktop/qtsource/corssbin/ts_release/lib -make libs
- included parts
Building on: linux-g++ (x86_64, CPU features: mmx sse sse2) Building for: linux-arm-gnueabi-g++ (arm, CPU features: <none>) Configuration: cross_compile compile_examples enable_new_dtags largefile shared rpath release c++11 c++14 concurrent dbus reduce_exports stl Build options: Mode ................................... release Optimize release build for size ........ no Building shared libraries .............. yes Using C++ standard ..................... C++14 Using ccache ........................... no Using gold linker ...................... no Using new DTAGS ........................ yes Using precompiled headers .............. no Using LTCG ............................. no Target compiler supports: NEON ................................. no Build parts ............................ libs libs Qt modules and options: Qt Concurrent .......................... yes Qt D-Bus ............................... yes Qt D-Bus directly linked to libdbus .... yes Qt Gui ................................. yes Qt Network ............................. yes Qt Sql ................................. yes Qt Testlib ............................. yes Qt Widgets ............................. yes Qt Xml ................................. yes Support enabled for: Using pkg-config ....................... yes udev ................................... yes Using system zlib ...................... yes Qt Core: DoubleConversion ....................... yes Using system DoubleConversion ........ no GLib ................................... yes iconv .................................. no ICU .................................... yes Tracing backend ........................ <none> Logging backends: journald ............................. no syslog ............................... no slog2 ................................ no Using system PCRE2 ..................... no Qt Network: getifaddrs() ........................... yes IPv6 ifname ............................ yes libproxy ............................... no Linux AF_NETLINK ....................... no OpenSSL ................................ no Qt directly linked to OpenSSL ........ no OpenSSL 1.1 ............................ no SCTP ................................... no Use system proxies ..................... yes Qt Gui: Accessibility .......................... yes FreeType ............................... yes Using system FreeType ................ yes HarfBuzz ............................... yes Using system HarfBuzz ................ no Fontconfig ............................. yes Image formats: GIF .................................. yes ICO .................................. yes JPEG ................................. yes Using system libjpeg ............... no PNG .................................. yes Using system libpng ................ yes EGL .................................... no OpenVG ................................. no OpenGL: Desktop OpenGL ....................... no OpenGL ES 2.0 ........................ no OpenGL ES 3.0 ........................ no OpenGL ES 3.1 ........................ no OpenGL ES 3.2 ........................ no Vulkan ................................. no Session Management ..................... yes Features used by QPA backends: evdev .................................. yes libinput ............................... no INTEGRITY HID .......................... no mtdev .................................. no tslib .................................. yes xkbcommon-evdev ........................ no QPA backends: DirectFB ............................... no EGLFS .................................. no LinuxFB ................................ yes VNC .................................... yes Mir client ............................. no Qt Widgets: GTK+ ................................... no Styles ................................. Fusion Windows Qt PrintSupport: CUPS ................................... no Qt Sql: DB2 (IBM) .............................. no InterBase .............................. no MySql .................................. no OCI (Oracle) ........................... no ODBC ................................... no PostgreSQL ............................. no SQLite2 ................................ no SQLite ................................. yes Using system provided SQLite ......... no TDS (Sybase) ........................... no Qt Testlib: Tester for item models ................. yes QtXmlPatterns: XML schema support ..................... yes Qt QML: QML network support .................... yes QML debugging and profiling support .... yes QML delegate model ..................... yes Qt Quick: Direct3D 12 ............................ no AnimatedImage item ..................... yes Canvas item ............................ yes Support for Qt Quick Designer .......... yes Flipable item .......................... yes GridView item .......................... yes ListView item .......................... yes Path support ........................... yes PathView item .......................... yes Positioner items ....................... yes Repeater item .......................... yes ShaderEffect item ...................... yes Sprite item ............................ yes Qt Gamepad: SDL2 ................................... no Qt Wayland Client ........................ no Qt Wayland Compositor .................... no Qt Bluetooth: BlueZ .................................. yes BlueZ Low Energy ....................... yes Linux Crypto API ....................... yes WinRT Bluetooth API (desktop & UWP) .... no Qt Sensors: sensorfw ............................... no Qt Quick Controls 2: Styles ................................. Default Fusion Imagine Material Universal Qt Quick Templates 2: Hover support .......................... yes Multi-touch support .................... yes Qt Positioning: Gypsy GPS Daemon ....................... no WinRT Geolocation API .................. no Qt Location: Qt.labs.location experimental QML plugin . yes Geoservice plugins: OpenStreetMap ........................ yes HERE ................................. yes Esri ................................. yes Mapbox ............................... yes MapboxGL ............................. no Itemsoverlay ......................... yes Qt Multimedia: ALSA ................................... yes GStreamer 1.0 .......................... no GStreamer 0.10 ......................... yes Video for Linux ........................ yes OpenAL ................................. no PulseAudio ............................. no Resource Policy (libresourceqt5) ....... no Windows Audio Services ................. no DirectShow ............................. no Windows Media Foundation ............... no Qt WebEngine: Embedded build ......................... yes Pepper Plugins ......................... no Printing and PDF ....................... no Proprietary Codecs ..................... no Spellchecker ........................... yes Native Spellchecker .................... no WebRTC ................................. no Use System Ninja ....................... no Geolocation ............................ yes Use v8 snapshot ........................ yes Building v8 snapshot supported ......... no Use ALSA ............................... yes Use PulseAudio ......................... no Optional system libraries used: re2 .................................. no icu .................................. no libwebp, libwebpmux and libwebpdemux . no opus ................................. no ffmpeg ............................... no libvpx ............................... no snappy ............................... no libsrtp .............................. no glib ................................. yes zlib ................................. yes minizip .............................. no libevent ............................. no jsoncpp .............................. no protobuf ............................. no libxml2 and libxslt .................. no lcms2 ................................ no png .................................. yes JPEG ................................. no harfbuzz ............................. no freetype ............................. yes Required system libraries: fontconfig ........................... yes dbus ................................. yes nss .................................. no khr .................................. no glibc ................................ yes Required system libraries for qpa-xcb: libdrm ............................... no xcomposite ........................... no xcursor .............................. no xi ................................... no xrandr ............................... no xtst ................................. no
- platform environment before executing programe.
export LD_LIBRARY_PATH='/emmc/ts_lib/lib:/emmc/qt_dir/lib:/emmc/qt_dir/plugins/platforms:/lib:/usr/lib:/usr/local/lib' export PATH='/usr/bin:/bin:/usr/sbin:/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin' export QT_ROOT='/emmc/qt_dir' export QML2_IMPORT_PATH='/emmc/qt_dir/qml' export QML_IMPORT_PATH='/emmc/qt_dir/qml' export QT_DEBUG_PLUGINS='1' export QT_IM_MODULE='qtvirtualkeyboard' export QT_PLUGIN_PATH='/emmc/qt_dir/plugins' export QT_QPA_FB_DRM='2' export QT_QPA_FB_TSLIB='1' export QT_QPA_FONTDIR='/emmc/qt_dir/lib/fonts' export QT_QPA_GENERIC_PLUGINS='tslib' export QT_QPA_PLATFORM='linuxfb:fb=/dev/fb0' export QT_QPA_PLATFORM_PLUGIN_PATH='/emmc/qt_dir/plugins/platforms' export QT_VIRTUALKEYBOARD_PINYIN_DICTIONARY='/emmc/qt_dir/qtvirtualkeyboard/pinyin/dict_pinyin.dat' export QT_VIRTUALKEYBOARD_ZHUYIN_DICTIONARY='/emmc/qt_dir/qtvirtualkeyboard/tcime/dict_zhuyin.dat' export TSLIB_CONFFILE='/emmc/ts_lib/etc/ts.conf' export TSLIB_CONSOLEDEVICE='none' export TSLIB_FBDEVICE='/dev/fb0' export TSLIB_PLUGINDIR='/emmc/ts_lib/lib/ts' export TSLIB_ROOT='/emmc/ts_lib' export TSLIB_TSDEVICE='/dev/input/event2'
checked DICTIONARY file ,it's exist.
- debug information
QFactoryLoader::QFactoryLoader() checking directory path "/emmc/qt_dir/plugins/platforms" ... QFactoryLoader::QFactoryLoader() looking at "/emmc/qt_dir/plugins/platforms/libqlinuxfb.so" Found metadata in lib /emmc/qt_dir/plugins/platforms/libqlinuxfb.so, metadata= { "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3", "MetaData": { "Keys": [ "linuxfb" ] }, "className": "QLinuxFbIntegrationPlugin", "debug": false, "version": 330499 } Got keys from plugin meta data ("linuxfb") QFactoryLoader::QFactoryLoader() looking at "/emmc/qt_dir/plugins/platforms/libqminimal.so" Found metadata in lib /emmc/qt_dir/plugins/platforms/libqminimal.so, metadata= { "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3", "MetaData": { "Keys": [ "minimal" ] }, "className": "QMinimalIntegrationPlugin", "debug": false, "version": 330499 } Got keys from plugin meta data ("minimal") QFactoryLoader::QFactoryLoader() looking at "/emmc/qt_dir/plugins/platforms/libqoffscreen.so" Found metadata in lib /emmc/qt_dir/plugins/platforms/libqoffscreen.so, metadata= { "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3", "MetaData": { "Keys": [ "offscreen" ] }, "className": "QOffscreenIntegrationPlugin", "debug": false, "version": 330499 } Got keys from plugin meta data ("offscreen") QFactoryLoader::QFactoryLoader() looking at "/emmc/qt_dir/plugins/platforms/libqvnc.so" Found metadata in lib /emmc/qt_dir/plugins/platforms/libqvnc.so, metadata= { "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3", "MetaData": { "Keys": [ "vnc" ] }, "className": "QVncIntegrationPlugin", "debug": false, "version": 330499 } Got keys from plugin meta data ("vnc") QFactoryLoader::QFactoryLoader() checking directory path "/emmc/qt_dir/plugins" ... QFactoryLoader::QFactoryLoader() checking directory path "/root/qts" ... QFactoryLoader::QFactoryLoader() checking directory path "/emmc/qt_dir/plugins/platforms/platforms" ... QFactoryLoader::QFactoryLoader() checking directory path "/emmc/qt_dir/plugins/platforms" ... QFactoryLoader::QFactoryLoader() looking at "/emmc/qt_dir/plugins/platforms/libqlinuxfb.so" Got keys from plugin meta data ("linuxfb") QFactoryLoader::QFactoryLoader() looking at "/emmc/qt_dir/plugins/platforms/libqminimal.so" Got keys from plugin meta data ("minimal") QFactoryLoader::QFactoryLoader() looking at "/emmc/qt_dir/plugins/platforms/libqoffscreen.so" Got keys from plugin meta data ("offscreen") QFactoryLoader::QFactoryLoader() looking at "/emmc/qt_dir/plugins/platforms/libqvnc.so" Got keys from plugin meta data ("vnc") QFactoryLoader::QFactoryLoader() checking directory path "/root/qts/platforms" ... loaded library "/emmc/qt_dir/plugins/platforms/libqlinuxfb.so" QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root' QFactoryLoader::QFactoryLoader() checking directory path "/emmc/qt_dir/plugins/platforms/platforminputcontexts" ... QFactoryLoader::QFactoryLoader() checking directory path "/emmc/qt_dir/plugins/platforminputcontexts" ... QFactoryLoader::QFactoryLoader() looking at "/emmc/qt_dir/plugins/platforminputcontexts/libibusplatforminputcontextplugin.so" Found metadata in lib /emmc/qt_dir/plugins/platforminputcontexts/libibusplatforminputcontextplugin.so, metadata= { "IID": "org.qt-project.Qt.QPlatformInputContextFactoryInterface.5.1", "MetaData": { "Keys": [ "ibus" ] }, "className": "QIbusPlatformInputContextPlugin", "debug": false, "version": 330499 } Got keys from plugin meta data ("ibus") QFactoryLoader::QFactoryLoader() looking at "/emmc/qt_dir/plugins/platforminputcontexts/libqtvirtualkeyboardplugin.so" Found metadata in lib /emmc/qt_dir/plugins/platforminputcontexts/libqtvirtualkeyboardplugin.so, metadata= { "IID": "org.qt-project.Qt.QPlatformInputContextFactoryInterface.5.1", "MetaData": { "Keys": [ "qtvirtualkeyboard" ] }, "className": "QVirtualKeyboardPlugin", "debug": false, "version": 330499 } Got keys from plugin meta data ("qtvirtualkeyboard") QFactoryLoader::QFactoryLoader() checking directory path "/root/qts/platforminputcontexts" ... loaded library "/emmc/qt_dir/plugins/platforminputcontexts/libqtvirtualkeyboardplugin.so" QFactoryLoader::QFactoryLoader() checking directory path "/emmc/qt_dir/plugins/platforms/generic" ... QFactoryLoader::QFactoryLoader() checking directory path "/emmc/qt_dir/plugins/generic" ... QFactoryLoader::QFactoryLoader() looking at "/emmc/qt_dir/plugins/generic/libqevdevkeyboardplugin.so" Found metadata in lib /emmc/qt_dir/plugins/generic/libqevdevkeyboardplugin.so, metadata= { "IID": "org.qt-project.Qt.QGenericPluginFactoryInterface", "MetaData": { "Keys": [ "EvdevKeyboard" ] }, "className": "QEvdevKeyboardPlugin", "debug": false, "version": 330499 } Got keys from plugin meta data ("evdevkeyboard") QFactoryLoader::QFactoryLoader() looking at "/emmc/qt_dir/plugins/generic/libqevdevmouseplugin.so" Found metadata in lib /emmc/qt_dir/plugins/generic/libqevdevmouseplugin.so, metadata= { "IID": "org.qt-project.Qt.QGenericPluginFactoryInterface", "MetaData": { "Keys": [ "EvdevMouse" ] }, "className": "QEvdevMousePlugin", "debug": false, "version": 330499 } Got keys from plugin meta data ("evdevmouse") QFactoryLoader::QFactoryLoader() looking at "/emmc/qt_dir/plugins/generic/libqevdevtabletplugin.so" Found metadata in lib /emmc/qt_dir/plugins/generic/libqevdevtabletplugin.so, metadata= { "IID": "org.qt-project.Qt.QGenericPluginFactoryInterface", "MetaData": { "Keys": [ "EvdevTablet" ] }, "className": "QEvdevTabletPlugin", "debug": false, "version": 330499 } Got keys from plugin meta data ("evdevtablet") QFactoryLoader::QFactoryLoader() looking at "/emmc/qt_dir/plugins/generic/libqevdevtouchplugin.so" Found metadata in lib /emmc/qt_dir/plugins/generic/libqevdevtouchplugin.so, metadata= { "IID": "org.qt-project.Qt.QGenericPluginFactoryInterface", "MetaData": { "Keys": [ "EvdevTouch" ] }, "className": "QEvdevTouchScreenPlugin", "debug": false, "version": 330499 } Got keys from plugin meta data ("evdevtouch") QFactoryLoader::QFactoryLoader() looking at "/emmc/qt_dir/plugins/generic/libqtslibplugin.so" Found metadata in lib /emmc/qt_dir/plugins/generic/libqtslibplugin.so, metadata= { "IID": "org.qt-project.Qt.QGenericPluginFactoryInterface", "MetaData": { "Keys": [ "Tslib", "TslibRaw" ] }, "className": "QTsLibPlugin", "debug": false, "version": 330499 } Got keys from plugin meta data ("tslib", "tslibraw") QFactoryLoader::QFactoryLoader() looking at "/emmc/qt_dir/plugins/generic/libqtuiotouchplugin.so" Found metadata in lib /emmc/qt_dir/plugins/generic/libqtuiotouchplugin.so, metadata= { "IID": "org.qt-project.Qt.QGenericPluginFactoryInterface", "MetaData": { "Keys": [ "TuioTouch" ] }, "className": "QTuioTouchPlugin", "debug": false, "version": 330499 } Got keys from plugin meta data ("tuiotouch") QFactoryLoader::QFactoryLoader() checking directory path "/root/qts/generic" ... loaded library "/emmc/qt_dir/plugins/generic/libqtslibplugin.so" Found metadata in lib /emmc/qt_dir/qml/QtQuick.2/libqtquick2plugin.so, metadata= { "IID": "org.qt-project.Qt.QQmlExtensionInterface/1.0", "MetaData": { }, "className": "QtQuick2Plugin", "debug": false, "uri": [ "QtQuick.2" ], "version": 330499 } loaded library "/emmc/qt_dir/qml/QtQuick.2/libqtquick2plugin.so" Found metadata in lib /emmc/qt_dir/qml/QtQuick/Window.2/libwindowplugin.so, metadata= { "IID": "org.qt-project.Qt.QQmlExtensionInterface/1.0", "MetaData": { }, "className": "QtQuick2WindowPlugin", "debug": false, "uri": [ "QtQuick.Window.2" ], "version": 330499 } loaded library "/emmc/qt_dir/qml/QtQuick/Window.2/libwindowplugin.so" Found metadata in lib /emmc/qt_dir/qml/QtQuick/Controls.2/libqtquickcontrols2plugin.so, metadata= { "IID": "org.qt-project.Qt.QQmlExtensionInterface/1.0", "MetaData": { }, "className": "QtQuickControls2Plugin", "debug": false, "uri": [ "QtQuick.Controls.2" ], "version": 330499 } loaded library "/emmc/qt_dir/qml/QtQuick/Controls.2/libqtquickcontrols2plugin.so" Found metadata in lib /emmc/qt_dir/qml/QtQuick/Templates.2/libqtquicktemplates2plugin.so, metadata= { "IID": "org.qt-project.Qt.QQmlExtensionInterface/1.0", "MetaData": { }, "className": "QtQuickTemplates2Plugin", "debug": false, "uri": [ "QtQuick.Templates.2" ], "version": 330499 } loaded library "/emmc/qt_dir/qml/QtQuick/Templates.2/libqtquicktemplates2plugin.so" Found metadata in lib /emmc/qt_dir/qml/QtQuick/Layouts/libqquicklayoutsplugin.so, metadata= { "IID": "org.qt-project.Qt.QQmlExtensionInterface/1.0", "MetaData": { }, "className": "QtQuickLayoutsPlugin", "debug": false, "uri": [ "QtQuick.Layouts" ], "version": 330499 } loaded library "/emmc/qt_dir/qml/QtQuick/Layouts/libqquicklayoutsplugin.so" Found metadata in lib /emmc/qt_dir/qml/QtQuick/VirtualKeyboard/Styles/libqtvirtualkeyboardstylesplugin.so, metadata= { "IID": "org.qt-project.Qt.QQmlExtensionInterface/1.0", "MetaData": { }, "className": "QtVirtualKeyboardStylesPlugin", "debug": false, "uri": [ "QtQuick.VirtualKeyboard.Styles" ], "version": 330499 } loaded library "/emmc/qt_dir/qml/QtQuick/VirtualKeyboard/Styles/libqtvirtualkeyboardstylesplugin.so" Found metadata in lib /emmc/qt_dir/qml/Qt/labs/folderlistmodel/libqmlfolderlistmodelplugin.so, metadata= { "IID": "org.qt-project.Qt.QQmlExtensionInterface/1.0", "MetaData": { }, "className": "QmlFolderListModelPlugin", "debug": false, "uri": [ "Qt.labs.folderlistmodel" ], "version": 330499 } loaded library "/emmc/qt_dir/qml/Qt/labs/folderlistmodel/libqmlfolderlistmodelplugin.so" QFactoryLoader::QFactoryLoader() checking directory path "/emmc/qt_dir/plugins/platforms/imageformats" ... QFactoryLoader::QFactoryLoader() checking directory path "/emmc/qt_dir/plugins/imageformats" ... QFactoryLoader::QFactoryLoader() looking at "/emmc/qt_dir/plugins/imageformats/libqgif.so" Found metadata in lib /emmc/qt_dir/plugins/imageformats/libqgif.so, metadata= { "IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface", "MetaData": { "Keys": [ "gif" ], "MimeTypes": [ "image/gif" ] }, "className": "QGifPlugin", "debug": false, "version": 330499 } Got keys from plugin meta data ("gif") QFactoryLoader::QFactoryLoader() looking at "/emmc/qt_dir/plugins/imageformats/libqicns.so" Found metadata in lib /emmc/qt_dir/plugins/imageformats/libqicns.so, metadata= { "IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface", "MetaData": { "Keys": [ "icns" ], "MimeTypes": [ "image/x-icns" ] }, "className": "QICNSPlugin", "debug": false, "version": 330499 } Got keys from plugin meta data ("icns") QFactoryLoader::QFactoryLoader() looking at "/emmc/qt_dir/plugins/imageformats/libqico.so" Found metadata in lib /emmc/qt_dir/plugins/imageformats/libqico.so, metadata= { "IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface", "MetaData": { "Keys": [ "ico", "cur" ], "MimeTypes": [ "image/vnd.microsoft.icon", "image/vnd.microsoft.icon" ] }, "className": "QICOPlugin", "debug": false, "version": 330499 } Got keys from plugin meta data ("ico", "cur") QFactoryLoader::QFactoryLoader() looking at "/emmc/qt_dir/plugins/imageformats/libqjpeg.so" Found metadata in lib /emmc/qt_dir/plugins/imageformats/libqjpeg.so, metadata= { "IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface", "MetaData": { "Keys": [ "jpg", "jpeg" ], "MimeTypes": [ "image/jpeg", "image/jpeg" ] }, "className": "QJpegPlugin", "debug": false, "version": 330499 } Got keys from plugin meta data ("jpg", "jpeg") QFactoryLoader::QFactoryLoader() looking at "/emmc/qt_dir/plugins/imageformats/libqsvg.so" Found metadata in lib /emmc/qt_dir/plugins/imageformats/libqsvg.so, metadata= { "IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface", "MetaData": { "Keys": [ "svg", "svgz" ], "MimeTypes": [ "image/svg+xml", "image/svg+xml-compressed" ] }, "className": "QSvgPlugin", "debug": false, "version": 330499 } Got keys from plugin meta data ("svg", "svgz") QFactoryLoader::QFactoryLoader() looking at "/emmc/qt_dir/plugins/imageformats/libqtga.so" Found metadata in lib /emmc/qt_dir/plugins/imageformats/libqtga.so, metadata= { "IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface", "MetaData": { "Keys": [ "tga" ], "MimeTypes": [ "image/x-tga" ] }, "className": "QTgaPlugin", "debug": false, "version": 330499 } Got keys from plugin meta data ("tga") QFactoryLoader::QFactoryLoader() looking at "/emmc/qt_dir/plugins/imageformats/libqtiff.so" Found metadata in lib /emmc/qt_dir/plugins/imageformats/libqtiff.so, metadata= { "IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface", "MetaData": { "Keys": [ "tiff", "tif" ], "MimeTypes": [ "image/tiff", "image/tiff" ] }, "className": "QTiffPlugin", "debug": false, "version": 330499 } Got keys from plugin meta data ("tiff", "tif") QFactoryLoader::QFactoryLoader() looking at "/emmc/qt_dir/plugins/imageformats/libqwbmp.so" Found metadata in lib /emmc/qt_dir/plugins/imageformats/libqwbmp.so, metadata= { "IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface", "MetaData": { "Keys": [ "wbmp" ], "MimeTypes": [ "image/vnd.wap.wbmp" ] }, "className": "QWbmpPlugin", "debug": false, "version": 330499 } Got keys from plugin meta data ("wbmp") QFactoryLoader::QFactoryLoader() looking at "/emmc/qt_dir/plugins/imageformats/libqwebp.so" Found metadata in lib /emmc/qt_dir/plugins/imageformats/libqwebp.so, metadata= { "IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface", "MetaData": { "Keys": [ "webp" ], "MimeTypes": [ "image/webp" ] }, "className": "QWebpPlugin", "debug": false, "version": 330499 } Got keys from plugin meta data ("webp") QFactoryLoader::QFactoryLoader() checking directory path "/root/qts/imageformats" ... loaded library "/emmc/qt_dir/plugins/imageformats/libqgif.so" loaded library "/emmc/qt_dir/plugins/imageformats/libqicns.so" loaded library "/emmc/qt_dir/plugins/imageformats/libqico.so" loaded library "/emmc/qt_dir/plugins/imageformats/libqjpeg.so" loaded library "/emmc/qt_dir/plugins/imageformats/libqsvg.so" loaded library "/emmc/qt_dir/plugins/imageformats/libqtga.so" Cannot load library /emmc/qt_dir/plugins/imageformats/libqtiff.so: (libtiff.so.5: cannot open shared object file: No such file or directory) QLibraryPrivate::loadPlugin failed on "/emmc/qt_dir/plugins/imageformats/libqtiff.so" : "Cannot load library /emmc/qt_dir/plugins/imageformats/libqtiff.so: (libtiff.so.5: cannot open shared object file: No such file or directory)" loaded library "/emmc/qt_dir/plugins/imageformats/libqwbmp.so" loaded library "/emmc/qt_dir/plugins/imageformats/libqwebp.so" QFactoryLoader::QFactoryLoader() checking directory path "/emmc/qt_dir/plugins/platforms/accessiblebridge" ... QFactoryLoader::QFactoryLoader() checking directory path "/emmc/qt_dir/plugins/accessiblebridge" ... QFactoryLoader::QFactoryLoader() checking directory path "/root/qts/accessiblebridge" ... QFactoryLoader::QFactoryLoader() checking directory path "/emmc/qt_dir/plugins/platforms/accessible" ... QFactoryLoader::QFactoryLoader() checking directory path "/emmc/qt_dir/plugins/accessible" ... QFactoryLoader::QFactoryLoader() checking directory path "/root/qts/accessible" ...
I tryed to use
QtQuick.VirtualKeyboard.Settings 2.2
set variable.
wordCandidateList.alwaysVisible = true
it shows candidate list rectangle now, but still empty, no any candidate appear.
-
I found that Japaneese Kanji work normally, maybe it's chinese dictionary problem.
-
Hello guys.
I solved the problem.It's because of dictionary path compiled as absolute prefix path.
I checked the source code,
qtvirtualkeyboard\src\virtualkeyboard\tcinputmethod.cpp382 if (inputMode == InputEngine::Zhuyin) { 383 if (d->zhuyinDictionary.isEmpty()) { 384 QString zhuyinDictionary(qEnvironmentVariable("QT_VIRTUALKEYBOARD_ZHUYIN_DICTIONARY")); 385 if (zhuyinDictionary.isEmpty()) 386 zhuyinDictionary = QLibraryInfo::location(QLibraryInfo::DataPath) + "/qtvirtualkeyboard/tcime/dict_zhuyin.dat"; 387 d->zhuyinDictionary.load(zhuyinDictionary); 388 } 389 d->wordDictionary = &d->zhuyinDictionary; 390 }
Line 386 :
It used QLibraryInfo, the datapath equals prefix path .I am not expert in QT, but in this case it is not related by qt path on my platform,
I thought the path should be "$QT_ROOT/prefix".
But actually , it used "/prefix" as absolute path.
So I have to move the dictionary file to"/prefix/qtvirtualkeyboard/tcime/dict_zhuyin.dat"
instead of"&QT_ROOT/prefix/qtvirtualkeyboard/tcime/dict_zhuyin.dat"
that's why Japanese work fine, because it implemented without external dictionary.
Is this a bug ? Or just my misunderstanding of QT.
-
Hi and welcome to devnet,
What is the code for the working dictionary ?
-
@sgaist
I changedenum QLibraryInfo::LibraryLocation
type.
fromQLibraryInfo::DataPath
toQLibraryInfo::PluginsPath
,
also moved qtvirtualkeyboard folder from/
toQT_PLUGIN_PATH/
.382 if (inputMode == InputEngine::Zhuyin) { 383 if (d->zhuyinDictionary.isEmpty()) { 384 QString zhuyinDictionary(qEnvironmentVariable("QT_VIRTUALKEYBOARD_ZHUYIN_DICTIONARY")); 385 if (zhuyinDictionary.isEmpty()) 386 zhuyinDictionary = QLibraryInfo::location(QLibraryInfo::PluginsPath) + "/qtvirtualkeyboard/tcime/dict_zhuyin.dat"; 387 d->zhuyinDictionary.load(zhuyinDictionary); 388 } 389 d->wordDictionary = &d->zhuyinDictionary; 390 }
I checked this:
Qt Virtual Keyboard Deployment GuideIt said:
For example, for Qt libraries built from source, it could be qtbase/qtvirtualkeyboard/tcime/dict_zhuyin.dat.
It was,but for embeded system, we won't provide QTBASE envirement variable, made this is not really portable ,
but we'll setQT_PLUGIN_PATH
, that's why I made the change;
And this,
enum QLibraryInfo::LibraryLocation
says,QLibraryInfo::DataPath :The location of general `architecture-independent` Qt data.
Truely cause me misunderstanding. I don't know this is meaning
absolute
orportable
. -
Thanks for the info