[英]How launch Qt Virtual keyboard only for Tablet Mode in Windows
我正在为 Windows 台式机和平板电脑制作应用程序。 我需要在平板电脑模式下启动 Qt 虚拟键盘。
我在 Qt 文档中遵循了这个例子
我只是在我的 main.cpp 中放了一行代码来让 Qt 虚拟键盘工作
qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard"));
但是现在虚拟键盘也在桌面模式下启动,这是不需要的。 如何限制 Qt 虚拟键盘仅用于平板电脑模式?
我正在使用 Qt 5.9 并尝试了 5.12。 Windows 屏幕键盘在需要时不会一直启动
要检查平板电脑模式,您可以使用 Qt 5.9 中引入的bool QWindowsWindowFunctions::isTabletMode()
静态函数。 要在表格模式下启用虚拟键盘并在桌面模式下禁用,您可以定期在计时器中检查它并分别显示/隐藏InputPanel
:
InputPanel {
id: inputPanel
property bool enableKeyboard: false
...
states: State {
name: "visible"
when: enableKeyboard && inputPanel.active
PropertyChanges {
target: inputPanel
y: appContainer.height - inputPanel.height
}
}
...
}
enableKeyboard
属性被定义为激活/停用键盘,它应该使用Timer
定期更新,例如:
Timer {
onTriggered: enableKeyboard = utils.isTabletMode()
running: true
repeat: true
interval: 1000
}
您应该在基于QObject
的类中定义isTabletMode
函数,例如:
#include <QtPlatformHeaders/QWindowsWindowFunctions>
...
Q_INVOKABLE bool isTabletMode() {
return QWindowsWindowFunctions::isTabletMode();
}
不要忘记通过以下方式将您的课程暴露给 qml:
qmlengine->rootContext()->setContextProperty("utils", pointerToMyClass);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.