How to custom qml virtual keyboard ?
-
@raven-worx
Another problem happens!@small_bird
read my post (regarding the style setup) again line by line and compare it to your code.
Why do you add the layout path to the engine's import path?!The keyboard styles and layout are different concepts, so don't mix them up.
-
@small_bird
read my post (regarding the style setup) again line by line and compare it to your code.
Why do you add the layout path to the engine's import path?!The keyboard styles and layout are different concepts, so don't mix them up.
@raven-worx
The out put is the same! -
@small_bird
read my post (regarding the style setup) again line by line and compare it to your code.
Why do you add the layout path to the engine's import path?!The keyboard styles and layout are different concepts, so don't mix them up.
@raven-worx The output is "Can not find style "style" - fallback: "default"
-
@raven-worx The output is "Can not find style "style" - fallback: "default"
@small_bird
my "fault". but anyway again this is described in the link i've posted.In the given import path Qt expects the style to be in the path
/QtQuick/VirtualKeyboard/Styles
So add yourstyle.qml
into the following qrc path (where STYLENAME is the name you provide in theQT_VIRTUALKEYBOARD_STYLE
env variable):
:/kbstyles/QtQuick/VirtualKeyboard/Styles/STYLENAME
=> so it becomes:/kbstyles/QtQuick/VirtualKeyboard/Styles/STYLENAME/style.qml
So
QT_VIRTUALKEYBOARD_STYLE
determines the folder name (which contains a style.qml) not the name of the qml file itself. -
@small_bird
my "fault". but anyway again this is described in the link i've posted.In the given import path Qt expects the style to be in the path
/QtQuick/VirtualKeyboard/Styles
So add yourstyle.qml
into the following qrc path (where STYLENAME is the name you provide in theQT_VIRTUALKEYBOARD_STYLE
env variable):
:/kbstyles/QtQuick/VirtualKeyboard/Styles/STYLENAME
=> so it becomes:/kbstyles/QtQuick/VirtualKeyboard/Styles/STYLENAME/style.qml
So
QT_VIRTUALKEYBOARD_STYLE
determines the folder name (which contains a style.qml) not the name of the qml file itself. -
@small_bird
last time...
engine->addImportPath(":/kbstyles")
-
@small_bird
last time...
engine->addImportPath(":/kbstyles")
@raven-worx Does not work, thanks all the same!
-
@raven-worx Does not work, thanks all the same!
@small_bird
if you follow the instructions in my post it definitely works, i used it myself already.
If not you are still doing something wrong.
Only advice left i can give is try a full rebuild (clean, rerun qmake, build again) -
@small_bird
if you follow the instructions in my post it definitely works, i used it myself already.
If not you are still doing something wrong.
Only advice left i can give is try a full rebuild (clean, rerun qmake, build again)@raven-worx
Warning:。。。。。。 -
The problem may be in the order of the addImportPath and engine.load actions. I found that
engine.load(QUrl("qrc:/main.qml"));
must be executed only after
engine.addImportPath("qrc:/kbstyles"); qputenv("QT_VIRTUALKEYBOARD_STYLE", "mykbstl");
So the code must be something like this:
QQmlApplicationEngine engine; engine.addImportPath("qrc:/kbstyles"); qputenv("QT_VIRTUALKEYBOARD_STYLE", "mykbstl"); engine.load(QUrl("qrc:/main.qml"));
-
Thank u for this thread. I resolved my problem with ru_RU <3
-
@priyankar maybe my answer in this topic helps you:
https://forum.qt.io/topic/134990/customising-qt-virtual-keyboard-qml-for-a-cross-compiled-remote-device/3 -
@raven-worx Thanks a lot! I have made it!
@small_bird can you share how you resolved I'm facing same issue
-
The correct path for styles is actually not just QtQuick/VirtualKeyboard/Styles.
In the documentation it states it is: $$[QT_INSTALL_QML]/QtQuick/VirtualKeyboard/Styles.
If the path to QtQuick/VirtualKeyboard/Styles is qrc:/kbstyles as above then to include the [QT_INSTALL_QML] portion for QML >= 2.0.0 put in main.cpp:
qputenv("QML2_IMPORT_PATH", "qrc:/kbstyles")The code should look similar to this:
QQmlApplicationEngine engine;
qputenv("QML2_IMPORT_PATH", "qrc:/kbstyles");engine.addImportPath("qrc:/kbstyles");
qputenv("QT_VIRTUALKEYBOARD_STYLE", "keyboardStyle");qputenv("QT_VIRTUALKEYBOARD_LAYOUT_PATH",
"qrc:/kbstyles/QtQuick/VirtualKeyboard/layouts");engine.load(QUrl("qrc:/main.qml"));
-
The correct path for styles is actually not just QtQuick/VirtualKeyboard/Styles.
In the documentation it states it is: $$[QT_INSTALL_QML]/QtQuick/VirtualKeyboard/Styles.
If the path to QtQuick/VirtualKeyboard/Styles is qrc:/kbstyles as above then to include the [QT_INSTALL_QML] portion for QML >= 2.0.0 put in main.cpp:
qputenv("QML2_IMPORT_PATH", "qrc:/kbstyles")The code should look similar to this:
QQmlApplicationEngine engine;
qputenv("QML2_IMPORT_PATH", "qrc:/kbstyles");engine.addImportPath("qrc:/kbstyles");
qputenv("QT_VIRTUALKEYBOARD_STYLE", "keyboardStyle");qputenv("QT_VIRTUALKEYBOARD_LAYOUT_PATH",
"qrc:/kbstyles/QtQuick/VirtualKeyboard/layouts");engine.load(QUrl("qrc:/main.qml"));
-
R Ronel_qtmaster referenced this topic on