Qt 虚拟键盘自定义样式
Posted
技术标签:
【中文标题】Qt 虚拟键盘自定义样式【英文标题】:Qt Virtual Keyboard Custom Style 【发布时间】:2018-02-02 23:01:29 【问题描述】:我需要在小屏幕上为 Qt VirtualKeyboard 构建自定义样式,以最大限度地提高其可读性。我已经在我的项目中构建了一个自定义布局,并且使用 QT_VIRTUALKEYBOARD_LAYOUT_PATH 效果很好。
我遇到的问题是 documentation 声明自定义样式必须放在 Qt 目录中。但是,我需要这种风格是可移植的,因此将这种新构建的风格存储在我的本地机器上而不是项目本身中是不可接受的。
有没有办法在项目中构建使用键盘样式?
【问题讨论】:
【参考方案1】:它不必在 Qt 目录中,只需在 QtQuick/VirtualKeyboard/Styles/
下的目录和 QML 导入路径中即可。
以自动测试为例:
http://code.qt.io/cgit/qt/qtvirtualkeyboard.git/tree/tests/auto/styles/data
您也可以将样式放在该文件夹结构下的 .qrc 文件中:
http://code.qt.io/cgit/qt/qtvirtualkeyboard.git/tree/src/virtualkeyboard/virtualkeyboardsettings.cpp#n70
我已经创建了一个任务来更清楚地说明这一点:https://bugreports.qt.io/browse/QTBUG-66172
【讨论】:
嗨米奇,感谢您的回复。这似乎与文档所述的解决方案相同。我遇到的问题是它不是一个可移植的解决方案,我可以将其推送到我的存储库,因为新样式位于我计算机上的 Qt 安装中,然后在编译时将其导入。我需要让新风格成为项目本身的一部分。例如,要放置一个新布局,我使用:qputenv("QT_VIRTUALKEYBOARD_LAYOUT_PATH", ":/embres/components/layouts");
这是在我的 main.cpp 中完成的,并在我的项目中放置一个包含我的新布局的文件夹的路径。
我链接到的自动测试完成了您正在尝试做的事情(在项目本身中具有样式),除了它在文件系统上而不是在资源系统上。
谢谢米奇,我搞定了。它的工作方式类似于使用 qputenv("QML2_IMPORT_PATH", folder contains structure QtQuick\VirtualKeyboard\Styles\name of style) 的键盘布局;在我的 main.cpp 中。以上是关于Qt 虚拟键盘自定义样式的主要内容,如果未能解决你的问题,请参考以下文章