问题标签 [qtvirtualkeyboard]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 如何在 Qml 中模拟按键事件?
我正在使用 QML 实现一个定制的虚拟键盘。我的目的是在我单击虚拟键盘中的按钮时模拟真实键盘的物理按键信号。我已按照Qt Virtual Keyboard中的教程进行操作,并成功构建并运行了示例代码。
问题是示例代码使用QCoreApplication::sendEvent()
C++ 类中的函数将按键事件发送到焦点 QObject。当我在main.qml中导入QtQuick.Controls 1.3作为指南时它运行良好,但当我更改为QtQuick.Controls 2.2时不起作用,这在我的应用程序中是必不可少的。以下是示例代码的核心:
那么如何将按键事件发送到我的应用程序?
python - PyQt5 - 显示虚拟键盘
我试图弄清楚如何在 Windows 上使用 python 3.8 和 PyQt5 将虚拟键盘用于触摸屏。
我看到Qt有他自己的插件QtVirtualKeyboard。我几乎遵循了这个链接中所做的事情,首先安装了支持虚拟键盘的 Qt 5.15,然后设置了环境变量。
一个简单的代码示例是这样的:
这个想法是在触摸行编辑时显示键盘。目前,该窗口已正确显示,但不会弹出键盘。我尝试按照上面的链接设置 ("QT_DIR", "QT_PLUGIN_PATH",...),但没有任何效果。
我知道我在那里遗漏了一些东西,但不知道是什么。谢谢您的帮助 !
python - 在带有 Armbian Bionic OS 的 Tinker Board 中使用 PyQt5 虚拟键盘
我正在尝试将虚拟键盘用于触摸屏,在 Armbian Bionic(用于 ARM 开发板的 Linux)上使用 python 3.6 和 PyQt5.10。我的硬件是华硕 Tinker Board。
我在此链接中检查了@eyllanesc 的答案。当我按照 Windows 10 中的说明进行操作时,它运行良好,但我在 Armbian Bionic 中做了同样的事情,但没有运气。似乎这个答案适用于 x86 和 x64 架构。在使用以下命令更新 python3 和 pip 后,我还尝试安装最新版本的 PyQt5-5.15.0:
所以最后我在网上搜索并发现我需要在主机Linux中交叉编译PyQt5!
谁能帮我找到最快最简单的解决方案?谢谢
python - 在树莓派中安装 QtVirtualkeyboard?
我正在尝试在 Raspberry-pi 中实现 Qt-Virtualkeyboard,使用PyQt5 - Show virtual keyboard但我没有找到它的前缀路径、bin、plugin 等文件夹,实际上整个 Qt 文件夹不存在。
c++ - 如何找到包含 QtVirtualKeyboard 的窗口
我在嵌入式设备上使用 qt 小部件并且虚拟键盘有问题。键盘显示为全屏并覆盖所有应用程序。
在Yocto 中的虚拟键盘顶部黑屏文章中描述了如何解决此问题。
总之,你需要用键盘找到QQuickWindow,并在这个窗口上调用setMask。那么键盘上方的区域就会是透明的
我有问题如何使用虚拟键盘找到 QQuickWindow。我试着用
但窗户不在这里。
c++ - 在 QTableView 中编辑单元格时出现 QtVirtualKeyboard 焦点问题
在过去的几天里,我一直在努力将 QtVirtualKeyboard 包含在我的基于 QWidget 的应用程序中,该应用程序在具有 7 英寸触摸屏显示器的 Raspberry Pi 上运行。
这是我到目前为止所做的:
安装插件:
添加QT_IM_MODULE
环境变量并将其设置为qtvirtualkeyboard
添加QT += quickwidgets
到我的 .pro
创建了一个QQuickWidget
来放置我的虚拟键盘。
。H
.cpp
最后是我的 virtualkeyboard.qml 文件
所以到目前为止,从视觉上看,一切都很好。当我打开我的应用程序时,键盘小部件不可见(窗口高度:qml 中的 0),当我双击 QTableView 中的一个单元格(具有标志 Qt::ItemIsEnabled | Qt::ItemIsEditable)时,键盘小部件以正确的位置和大小显示在我的垂直布局的底部。
现在我的问题:
我遇到的主要问题是当我双击我的可编辑单元格时,我的键盘小部件出现并且我的单元格似乎仍然有焦点(在单击的单元格中可以看到闪烁的光标)。到目前为止,一切都运行良好。但是当我单击虚拟键盘上的按钮时,可编辑单元格失去焦点,键盘小部件关闭,并且我在应用程序控制台中收到此错误: 我的 Designer 表单中基本小部件的名称在
InputContext::sendKeyClick(): no focus to send key click - QGuiApplication::focusWindow() is: QWidgetWindow(0x1e68250, name="ConfigWindow")
哪里。ConfigWindow
我遇到的另一个较小但看似无法解决的问题是,只有在我双击 QTableView 中的单元格时才会打开键盘。这是一个奇怪的,因为我在我的设计师中设置
editTriggers
了。CurrentChanged
我知道这是可行的,因为如果我单击我的单元格,光标开始闪烁,如果我使用连接到我的树莓的物理键盘,我可以编辑文本。(当然,物理键盘仅在我的应用程序开发过程中可用,不会在成品中可用)。
我希望我已经足够清楚,但如果需要,我很乐意提供更多细节。
对于这些问题中的任何一个的任何帮助将不胜感激。
干杯。
编辑:我遇到的一些有用的链接:
c++ - QtVirtualKeyboard 使用平台 WebGL 冻结 QML 应用程序,但桌面工作正常。如何解冻或解决它?
长版
我正在使用 WebGL 作为平台的浏览器中运行 QML 应用程序。一切正常,直到我尝试集成 QtVirtualKeyboard 以填充一些文本字段和可编辑的 ComboBox'es。在浏览器中运行项目时,收到的第一条消息是:
我怀疑此错误消息/警告未链接到 VirtualKeyboard (VK),因为删除 VK 的所有痕迹不会使消息消失。可以在下面查看浏览器窗口的屏幕截图。
单击文本输入字段时会出现下一条消息:
一半的屏幕保持黑色 - 这是刷新时 VK 所在的区域。再次 - 下面的截图。
刷新后,又出现三条消息。我将省略前两个,因为它们基本上是在说“您按下了 Alt 键和 F5 键”。第三条消息是:
现在键盘是可见的,但是每次在 VK 上敲击一个键时,都会出现新消息,而文本字段中不会写入任何文本:
除此之外,一旦项目处于此状态,来自我的键盘的输入似乎会被忽略。硬重置(关闭程序并重新启动)将功能恢复到被调用的 VK,刷新页面不会触发任何文本出现在文本字段中。我得到的最终视图如下所示:
我创建了一个最小的示例来演示该问题。它是由 Qt Creator 4.13.2 创建的稍作修改的空 QML 项目。
在桌面上运行它应该可以工作,如果项目收到命令行参数,则会出现问题行为-platform webgl:port=80
。我正在使用 MSVC2019 32 位和 Qt 5.15.1。该问题在 Microsoft Edge 44.18362.387.0 和 Firefox 68.5.0esr(32 位)中重现。
不过,Chrome 版本 86.0.4240.111(64 位)有点不同:虽然没有直接显示输入,但刷新网页后会输入内容。但是,最小化键盘不起作用,所以这不是解决方案。
TL、DR: 如果在桌面应用程序中运行,QtVirtualKeyboard 可以工作,但如果平台是 WebGL 并且选择了可编辑的文本元素,则会冻结应用程序。
问题: 有没有办法让 QtVirtualKeyboard 在 Qt/WebGL 应用程序中运行,或者是否有另一种方法/工具可用于在触摸设备上通过 Qt/WebGL 应用程序获得键盘功能?不必编写自己的键盘元素的奖励积分。
到目前为止我已经尝试过:
- 我搜索了一些流行的搜索引擎,但没有找到。
- 多个浏览器,没有令人满意的成功。
- 发现了一些与 Unity 相关的问题,这将是另一个论坛的交叉帖子。这些似乎不适用于我的问题,因为我怀疑 Qt/QML/WebGL 和 Unity/WebGL 会有很大不同,而且我没有使用 Unity 的经验。
- 我不确定这个问题是如何相关的:QT WebGL-stream, virtualKeyboard and touch screen problem
android - 在任何输入上使用 Qt 5.15 的 Android 上都看不到软键盘
我们从 5.12.9 迁移到 5.15.2,现在软 Android 键盘在我们的任何输入或文本字段的活动焦点上都不可见(不弹出)。这是一个错误(QTBUG-88069)还是存在一些解决方法?
遵循Stackoverflow 解决方案或设置/清除窗口标志对我不起作用。
python - pyqt上的虚拟键盘
如何在 python 上创建 qtVirtualKeyBoard?是否需要企业 Qt 版本?我一直在尝试创建自己的键盘,但它看起来并不好和漂亮..