Александр Панюшкин
Александр Панюшкин24 вересня 2017 р. 05:06

Virtual Keyboard

QT, Virtual Keyboard

Добрый день.


Есть изумительная штука - Qt Virtual Keyboard (http://doc.qt.io/Qt-5/qtvirtualkeyboard-index.html).
Есть вполне пригодный пример в примерах QtCreator. Правда, мне нужен код на qt, а там на qml, но не суть важно - в документации всё хорошо написано и для чистого c++.
В общем, всё работает, но есть одна проблема - язык только английский (а точнее - British English).
А мне нужен ещё и русский.
Как его добавить?

CONFIG += lang_ru
CONFIG += lang_all
Это всё пробовал - не помогает.

console.log("locales available: " + VirtualKeyboardSettings.availableLocales)
Это выводит только en_GB.

Я в замешательстве. Судя по google, более ни кто с такими проблемами не сталкивался.
Пробовал и на винде, и на маке - всё одно и то же.

Очень надеюсь, что мой вопрос глупый и местные гуру мне мигом укажут пример рабочего кода. Спасибо!
Рекомендуємо хостинг TIMEWEB
Рекомендуємо хостинг TIMEWEB
Стабільний хостинг, на якому розміщується соціальна мережа EVILEG. Для проектів на Django радимо VDS хостинг.

Вам це подобається? Поділіться в соціальних мережах!

12
BlinCT
  • 24 вересня 2017 р. 08:10
  • (відредаговано)

Приветствую.
Виртуальная клава и у меня на работе вызывала свои проблемы)
С ее работой нету проблем только в qml. То есть она как бы больше разрабатывалась не под виджеты.
Например виртуальная клава не реагирует если вы нажимаете в поле для ввода цифр или текста в виджетах, а в qml она реагирует.
Это еще один показатель того что она не приспособленна для такой графики.
Так же вот тут есть описание по поводу языков http://doc.qt.io/qt-5/technical-guide.html

    BlinCT
    • 24 вересня 2017 р. 08:13

    И к дополнению, вот тут на стековерфло тоже эта тема обсуждалась https://stackoverflow.com/questions/40507390/how-to-change-qt-5-7-virtual-keyboard-layout-locale

      Александр Панюшкин
      • 24 вересня 2017 р. 08:33

      Спасибо за ответ!

      И спасибо за ссылку на обсуждение этой проблемы.
      Подозреваю, что моя ошибка в какой-то мелочи, которую я уверенно повторяю на обоих платформах.
      Я пробовал добавлять фразу, которую пишут в решениях (CONFIG += lang-all или CONFIG += lang-ru_RU) в про файл, пробовал прописывать в параметры qmake - ни каких изменений.

      Возможно есть какие-то иные клавиатуры с поддержкой русского языка? Не писать же свою клавиатуру... Хотя, уже столько времени потеряно, что, мне кажется, проще свою нарисовать. :)

      Забыл написать - версия 5.9. Если это может быть важно.
        BlinCT
        • 24 вересня 2017 р. 08:59

        По поводу версии ничего сказать не могу, так как мы в проекте юзаем 5.5.1
        Вот следующий проект пойдет уже на 5.9.1
        Мне кажется у вас где то ошибка или чего то не хватает. Но так сказать тяжело в чем трабла.

          Александр Панюшкин
          • 24 вересня 2017 р. 10:14

          Создал конструктором QtCreator проект.

          Удалил всё лишнее (комментарии, widget.cpp, widget.h). Осталось два файла - main.cpp и untitled.pro.

          Вот их содержание:

          untitled.pro

          QT       += core gui widgets svg
          QTPLUGIN += qtvirtualkeyboardplugin
          CONFIG += lang-all
          
          TARGET = untitled
          TEMPLATE = app
          
          DEFINES += QT_DEPRECATED_WARNINGS
          
          SOURCES += \
                  main.cpp
          
          HEADERS +=

          main.cpp

          #include <QApplication>
          #include <QPlainTextEdit>
          
          int main(int argc, char *argv[])
          {
              qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard"));
          
              QApplication a(argc, argv);
              QPlainTextEdit edit;
              edit.show();
          
              return a.exec();
          }

          Пробовал в конфиге и lang-all, и lang-ru_RU - результат один только английский.
            Evgenii Legotckoi
            • 26 вересня 2017 р. 06:58

            Больше похоже на какой-то баг с клавиатурой. Перекопал разные варианты, а результат такой же. Кроме Британской раскладки ничего не работает.

              Александр Панюшкин
              • 27 вересня 2017 р. 00:09

              Большое спасибо! Чуть позже напишу тогда на баг трекер - посмотрим, что там скажут.

              Ну, и временное решение я нашёл (вдруг кому понадобится). :)
              Если из исходников взять ресурсный файл layouts и папку с языками и подложить в свой проект (не забыть привязать к проекту :) ), тогда появляются указанные в ресурсном файле языки. Т.е., по сути, таким образом мы указываем в принудительном порядке какие языки использовать.
              Хотя, разумеется, это костыль.
                Александр Панюшкин
                • 28 листопада 2017 р. 03:02
                • Відповідь була позначена як рішення.

                Вопрос решился. Подробности здесь - https://stackoverflow.com/questions/46390018/how-to-change-qt-5-9-virtual-keyboard-layout-locale

                Я проверил у себя - всё заработало.

                Вот ответ:

                I assume you made the same mistake as me and set CONFIG+=lang- argument in your project (the project that uses virtual keyboard). You need to set it in qtvirtualkeyboard project instead and build it (create dll files).

                qtVirtualKeyboard project settings

                Then you can use the plugin in any project you wish.

                  Evgenii Legotckoi
                  • 28 листопада 2017 р. 03:11

                  Да ладно... пересобрать саму виртуальную клавиатуру нужно?

                    Александр Панюшкин
                    • 28 листопада 2017 р. 03:19

                    Не знаю на сколько это правильно, но решение оказалось рабочим. В итоге клавиатура цепляется к моему проекту с нужными раскладками. :)

                      Evgenii Legotckoi
                      • 28 листопада 2017 р. 03:33

                      В принципе. Пересборка проекта вполне адекватное решение. У Qt есть некоторые модули, которые приходится пересобирать с нужными настройками. Во всяком случае это лучше, чем тот костыль, что Вы сделали поначалу.
                      Хотя конечно это немного странно. Не думал, что для поддержки довольно стандартных языков придётся пересобирать клавиатуру...

                        r
                        • 25 серпня 2021 р. 09:21

                        а подскажите, как создать релиз с виртуальной клавиатурой? ,Дело в том, с из qtCreator все работает, но как создаю релиз и переношу его на другой комп, то виртуальная клавитура не появляется. Спасибо за ответ

                          Коментарі

                          Only authorized users can post comments.
                          Please, Log in or Sign up
                          m
                          • molni99
                          • 26 жовтня 2024 р. 08:37

                          C++ - Тест 004. Указатели, Массивы и Циклы

                          • Результат:80бали,
                          • Рейтинг балів4
                          m
                          • molni99
                          • 26 жовтня 2024 р. 08:29

                          C++ - Тест 004. Указатели, Массивы и Циклы

                          • Результат:20бали,
                          • Рейтинг балів-10

                          C++ - Тест 003. Условия и циклы

                          • Результат:42бали,
                          • Рейтинг балів-8
                          Останні коментарі
                          A
                          ALO1ZE19 жовтня 2024 р. 15:19
                          Читалка файлів fb3 на Qt Creator Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
                          ИМ
                          Игорь Максимов05 жовтня 2024 р. 14:51
                          Django - Урок 064. Як написати розширення для Python Markdown Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
                          d
                          dblas505 липня 2024 р. 18:02
                          QML - Урок 016. База даних SQLite та робота з нею в QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
                          k
                          kmssr09 лютого 2024 р. 02:43
                          Qt Linux - Урок 001. Автозапуск програми Qt під Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
                          АК
                          Анатолий Кононенко05 лютого 2024 р. 09:50
                          Qt WinAPI - Урок 007. Робота з ICMP Ping в Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
                          Тепер обговоріть на форумі
                          jd
                          jasmine disouza28 жовтня 2024 р. 11:58
                          GeForce Now India: Unlocking the Future of Cloud Gaming GeForce Now India has a major impact on the gaming scene by introducing NVIDIA's cloud gaming service to Indian gamers. GeForce Now India lets you stream top-notch PC games on any device, from b…
                          9
                          9Anonim25 жовтня 2024 р. 16:10
                          Машина тьюринга // Начальное состояние 0 0, ,<,1 // Переход в состояние 1 при пустом символе 0,0,>,0 // Остаемся в состоянии 0, двигаясь вправо при встрече 0 0,1,>…
                          J
                          JacobFib17 жовтня 2024 р. 10:27
                          добавить qlineseries в функции Пользователь может получить любые разъяснения по интересующим вопросам, касающимся обработки его персональных данных, обратившись к Оператору с помощью электронной почты https://topdecorpro.ru…
                          ИМ
                          Игорь Максимов03 жовтня 2024 р. 11:05
                          Реализация навигации по разделам Спасибо Евгений!
                          JW
                          Jhon Wick01 жовтня 2024 р. 22:52
                          Indian Food Restaurant In Columbus OH| Layla’s Kitchen Indian Restaurant If you're looking for a truly authentic https://www.laylaskitchenrestaurantohio.com/ , Layla’s Kitchen Indian Restaurant is your go-to destination. Located at 6152 Cleveland Ave, Colu…

                          Слідкуйте за нами в соціальних мережах