Начиная с Qt6, кажется, что новый стиль InputPanel «скрывает» кнопку скрытия клавиатуры под кнопкой настроек.

Есть способ восстановить старый макет Qt5 InputPanel или кто-нибудь может объяснить, как я могу настроить/создать новый стиль InputPanel для репликации старого?

Я знаю, что существует тип KeyboardStyle, но не могу понять, как его использовать.





Если у вас установлены как Qt6, так и Qt5, скажем, Qt5.15.6 с исходными кодами, вы можете быстро протестировать раскладки клавиатуры Qt5 в своем приложении Qt6, добавив следующее в свой main.cpp:
qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard"));
qputenv("QT_VIRTUALKEYBOARD_LAYOUT_PATH", "C:/Qt/Qt5.15.6/5.15.6/Src/qtvirtualkeyboard/src/virtualkeyboard/content/layouts");
Затем скопируйте Src/qtvirtualkeyboard/src/virtualkeyboard/content/layouts в подпапку qt5layouts. Затем добавьте нужные локали клавиатуры. Здесь к en_US добавлены файлы fallback и main.qrc:
<file>qt5layouts/en_US/dialpad.fallback</file>
<file>qt5layouts/en_US/digits.fallback</file>
<file>qt5layouts/en_US/handwriting.fallback</file>
<file>qt5layouts/en_US/main.fallback</file>
<file>qt5layouts/en_US/numbers.fallback</file>
<file>qt5layouts/en_US/symbols.fallback</file>
<file>qt5layouts/fallback/dialpad.qml</file>
<file>qt5layouts/fallback/digits.qml</file>
<file>qt5layouts/fallback/handwriting.qml</file>
<file>qt5layouts/fallback/main.qml</file>
<file>qt5layouts/fallback/numbers.qml</file>
<file>qt5layouts/fallback/symbols.qml</file>
Наконец, обновите main.cpp, чтобы указать на ресурсы qt5layouts.
qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard"));
qputenv("QT_VIRTUALKEYBOARD_LAYOUT_PATH", QByteArray(":/qt5layouts"));
Полный рабочий пример можно найти в моем репозитории на GitHub: https://github.com/stephenquan/QtInputPanelDemo
Использованная литература: