Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. QML and Qt Quick
  4. How to custom qml virtual keyboard ?
Forum Updated to NodeBB v4.3 + New Features

How to custom qml virtual keyboard ?

Scheduled Pinned Locked Moved Unsolved QML and Qt Quick
37 Posts 7 Posters 22.0k Views 4 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.
  • raven-worxR raven-worx

    @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 your style.qml into the following qrc path (where STYLENAME is the name you provide in the QT_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_birdS Offline
    small_birdS Offline
    small_bird
    wrote on last edited by
    #25

    @raven-worx 0_1533772777685_捕获.PNG

    raven-worxR 1 Reply Last reply
    0
    • small_birdS small_bird

      @raven-worx 0_1533772777685_捕获.PNG

      raven-worxR Offline
      raven-worxR Offline
      raven-worx
      Moderators
      wrote on last edited by
      #26

      @small_bird
      last time...
      engine->addImportPath(":/kbstyles")

      --- SUPPORT REQUESTS VIA CHAT WILL BE IGNORED ---
      If you have a question please use the forum so others can benefit from the solution in the future

      small_birdS 1 Reply Last reply
      1
      • raven-worxR raven-worx

        @small_bird
        last time...
        engine->addImportPath(":/kbstyles")

        small_birdS Offline
        small_birdS Offline
        small_bird
        wrote on last edited by
        #27

        @raven-worx Does not work, thanks all the same!

        raven-worxR 1 Reply Last reply
        0
        • small_birdS small_bird

          @raven-worx Does not work, thanks all the same!

          raven-worxR Offline
          raven-worxR Offline
          raven-worx
          Moderators
          wrote on last edited by
          #28

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

          --- SUPPORT REQUESTS VIA CHAT WILL BE IGNORED ---
          If you have a question please use the forum so others can benefit from the solution in the future

          small_birdS 1 Reply Last reply
          0
          • raven-worxR raven-worx

            @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_birdS Offline
            small_birdS Offline
            small_bird
            wrote on last edited by
            #29

            @raven-worx 0_1534215503237_捕获.PNG
            Warning:。。。。。。

            1 Reply Last reply
            0
            • G Offline
              G Offline
              GSElabs
              wrote on last edited by
              #30

              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"));
              
              1 Reply Last reply
              0
              • V Offline
                V Offline
                Vincent_Law
                wrote on last edited by
                #31

                Thank u for this thread. I resolved my problem with ru_RU <3

                1 Reply Last reply
                0
                • P Offline
                  P Offline
                  priyankar
                  wrote on last edited by
                  #32

                  how to check the path set for QT_VIRTUALKEYBOARD_LAYOUT_PATH ?

                  L 1 Reply Last reply
                  0
                  • P priyankar

                    how to check the path set for QT_VIRTUALKEYBOARD_LAYOUT_PATH ?

                    L Offline
                    L Offline
                    lemons
                    wrote on last edited by
                    #33

                    @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

                    1 Reply Last reply
                    0
                    • P Offline
                      P Offline
                      priyankar
                      wrote on last edited by
                      #34

                      Thanks.
                      Tried but still the keyboard is blank

                      1 Reply Last reply
                      0
                      • small_birdS small_bird

                        @raven-worx Thanks a lot! I have made it!

                        P Offline
                        P Offline
                        priyankar
                        wrote on last edited by
                        #35

                        @small_bird can you share how you resolved I'm facing same issue

                        1 Reply Last reply
                        0
                        • D Offline
                          D Offline
                          dmendez
                          wrote on last edited by
                          #36

                          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"));

                          P 1 Reply Last reply
                          1
                          • D dmendez

                            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"));

                            P Offline
                            P Offline
                            priyankar
                            wrote on last edited by
                            #37

                            @dmendez thanks, it worked!

                            1 Reply Last reply
                            0
                            • Ronel_qtmasterR Ronel_qtmaster referenced this topic on

                            • Login

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