如何在 Qt 应用程序中使用 "weston-keyboard" virtual/on-screen 键盘

How to use "weston-keyboard" virtual/on-screen keyboard with a Qt application

我有一个使用 Wayland Weston 显示合成器的嵌入式 linux 显示(Yocto 构建),我正在为此开发 Qt 应用软件,目标是 Qt 5.9.4。

我的应用程序 运行 成功并且文本输入 UI 字段在 USB 键盘上工作正常,但是尽管进行了一天的谷歌搜索和实验,我还是看不到 virtual/on-screen 据称由 Weston 合成器提供的键盘。显示上有"weston-keyboard"进程运行,但没有任何地方出现弹出屏幕键盘的迹象。

有谁知道从应用程序端到 show/activate 虚拟键盘是否有什么特别需要做的(根据我的各种阅读,我的印象应该是 "just work") ,或者我应该怀疑操作系统构建中存在缺陷?

Qt 应用程序使用 Wayland 协议扩展 zwp_text_input_manager_v2 与合成器就虚拟键盘进行通信。

据我所知,Weston 不支持它(您可以查看 运行ning weston-info.

支持哪些扩展

因此,如果合成器未实现该确切版本,Qt 客户端将认为合成器不支持它(即使它可能实现 zxdg_text_input_manager_v1 and/or zxdg_text_input_manager_v3.

对于 zwp_text_input_manager_v2,您可以 运行 kwin 或基于 Qt Wayland 的合成器。有关如何执行此操作的信息,请参阅 qwayland 存储库中的 pure-qml 示例。

通过在客户端设置 QT_IM_MODULE=qtvirtualkeyboard,Qt 虚拟键盘也可以 运行 作为每个客户端的一部分。

过一会儿有official documentation on the way regarding this. Hopefully, it will show up here