标签: qtvirtualkeyboard

QtVirtualKeyboard 使用平台 WebGL 冻结 QML 应用程序,但桌面工作正常。如何解冻或解决它?

长版

我在浏览器中使用 WebGL 作为平台运行 QML 应用程序。一切正常,直到我尝试集成 QtVirtualKeyboard 以填充一些文本字段和可编辑的组合框。在浏览器中运行项目时,收到的第一条消息是:

This plugin does not support dynamic OpenGL loading!
Run Code Online (Sandbox Code Playgroud)

不过,我怀疑此错误消息/警告与 VirtualKeyboard (VK) 无关,因为删除 VK 的所有痕迹不会使消息消失。可以在下面查看浏览器窗口的屏幕截图。

在浏览器中运行的应用程序

单击文本输入字段时会出现下一条消息:

This plugin does not support setting window masks
Run Code Online (Sandbox Code Playgroud)

一半的屏幕保持黑色 - 这是刷新 VK 时所在的区域。再次 - 下面的截图。

与文本字段交互后的浏览器 - 下半部分在虚拟键盘所在的位置变黑

刷新后,会出现另外三个消息。我将省略前两个,因为它们基本上是在说“您按下了 Alt 键和 F5 键”。第三条消息是:

requestActivate() called for  QtVirtualKeyboard::InputView(0x4a16590)  which has Qt::WindowDoesNotAcceptFocus set.
Run Code Online (Sandbox Code Playgroud)

现在键盘是可见的,但是每次在 VK 上敲击键时,都会出现新消息,而没有文本写入文本字段:

This plugin does not support setting window masks
This plugin does not support setting window masks
qt.virtualkeyboard: InputContext::sendKeyClick(): no focus to send key click - QGuiApplication::focusWindow() …
Run Code Online (Sandbox Code Playgroud)

c++ webgl qml qt5 qtvirtualkeyboard

7
推荐指数
1
解决办法
244
查看次数

如何更改Qt 5.7虚拟键盘布局/区域设置

我正在使用Qml编写一个带有Qt 5.7的小型Windows应用程序.对于我的项目,我需要能够更改虚拟键盘布局.但经过几个小时的阅读文档和尝试各种事情,我仍然无法实现它.

我的Qt安装是默认的Windows安装,它是最新的(只检查是否有更新).

正如您在此处看到的,尽管我的操作系统区域设置为fi_FI,但键盘使用en_EN语言环境.并且还注意到"语言更改"按钮处于禁用状态.

在此输入图像描述

我还尝试从键盘设置列出可用的语言环境,我尝试通过键盘设置手动设置语言环境,但布​​局不会改变.以下是我的代码:

InputPanel {
    id: keyboardPanel
    y: Qt.inputMethod.visible ? parent.height - keyboardPanel.height : parent.height
    anchors.left: parent.left
    anchors.right: parent.right
    Component.onCompleted: {
        console.log("locales available: " + VirtualKeyboardSettings.availableLocales)
        console.log("Locale before changing it: " + VirtualKeyboardSettings.locale)
        VirtualKeyboardSettings.locale = "fi_FI";
        console.log("Locale after changing it: " + VirtualKeyboardSettings.locale)
    }
}
Run Code Online (Sandbox Code Playgroud)

运行该代码的结果是(键盘布局没有改变):

qml: locales available: 
qml: Locale before changing it: 
qml: Locale after changing it: fi_FI
Run Code Online (Sandbox Code Playgroud)

我可以使用自定义布局,但我不明白你如何改变自定义布局....

任何帮助将不胜感激.

qt qml qt5.7 qtvirtualkeyboard

6
推荐指数
1
解决办法
3859
查看次数

Qt VirtualKeyboard 启用和禁用按键

我正在编写一个使用 Qt 5.6.3 和 QtVirtualKeyboard 的应用程序,我需要能够启用/禁用其键。我设法通过手动编辑布局文件来做到这一点,但我需要根据用户输入动态地做到这一点。

我有InputPanel我在我的 qml 文件中使用的像这样

InputPanel {
    id: inputPanel
    visible: true
    y: parent.height - inputPanel.height
    anchors.left: parent.left
    anchors.right: parent.right
}
Run Code Online (Sandbox Code Playgroud)

启用所有键的键盘

这是启用所有键的默认键盘。

QWERT 已禁用

此处禁用 Q/W/E/R/T。

如何在 c++ 或 qml 中禁用类似的 VirtualKeyboard 键?

c++ qt qml qtvirtualkeyboard

5
推荐指数
1
解决办法
2079
查看次数

隐藏 Qt 虚拟键盘中的键

有没有办法在不使用自定义布局的情况下从虚拟键盘隐藏语言选择键?

在此输入图像描述

qt qml qtvirtualkeyboard

5
推荐指数
1
解决办法
3299
查看次数

在树莓派中安装QtVirtualkeyboard?

我尝试在 Raspberry-pi 中实现 Qt-Virtualkeyboard,使用PyQt5 - 显示虚拟键盘,但我没有找到它的前缀路径、bin、插件等文件夹,实际上整个 Qt 文件夹不存在。

python pyqt5 qtvirtualkeyboard python-3.7 raspberry-pi4

5
推荐指数
1
解决办法
4199
查看次数

PyQt5 - 显示虚拟键盘

我试图弄清楚如何在触摸屏上使用虚拟键盘,在 Windows 上使用 python 3.8 和 PyQt5。

我看到 Qt 有他自己的插件 QtVirtualKeyboard。我几乎遵循了这个链接中所做的,首先安装了支持虚拟键盘的 Qt 5.15,然后设置了环境变量。

一个简单的代码示例是这样的:

import os
import sys

from PyQt5.QtWidgets import QApplication
from PyQt5.QtWidgets import QLineEdit
from PyQt5.QtWidgets import QMainWindow
from PyQt5.QtWidgets import QVBoxLayout
from PyQt5.QtWidgets import QWidget

os.environ["QT_IM_MODULE"] = "qtvirtualkeyboard"


class MainWindow(QMainWindow):

    def __init__(self):
        super(MainWindow, self).__init__()
        self.line_edit = None
        self.init_ui()

    def init_ui(self):
        self.line_edit = QLineEdit()
        self.line_edit2 = QLineEdit()
        self.layout = QVBoxLayout()
        self.main_widget = QWidget()
        self.main_widget.setLayout(self.layout)
        self.layout.addWidget(self.line_edit)
        self.layout.addWidget(self.line_edit2)
        self.setCentralWidget(self.main_widget)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    mw = …
Run Code Online (Sandbox Code Playgroud)

python pyqt pyqt5 qtvirtualkeyboard

4
推荐指数
1
解决办法
3488
查看次数

如何使用QtVirtualKeyboard

我尝试将其集成QtVirtualKeyboard到原型中,但我失败了.这是我第一次使用多个项目,或者我必须在QML/QMake-Project中包含非基本内容.

我从git-repository获得了代码并成功运行了这些示例.但现在我很困惑如何将它整合到我自己的项目中.

我的项目结构如下

Proto (dir)
 +- Proto.pro
 +- main.cpp
 +- ...
 +---QML (dir)                     <--- QML-Files
 |    +-main.qml
 |    +---CustomControls (dir)
 |    +---...
 +---CPP (dir)                     <--- C++-Files and Headers
 +---RES                           <--- Icons and stuff
Run Code Online (Sandbox Code Playgroud)

现在我想我可能只是将src-project从虚拟键盘添加到root-folder(Proto),并添加如下内容:

SUBDIR += src/src.pro
Run Code Online (Sandbox Code Playgroud)

to Proto.pro-file
=>是的,我可以这样做,但它没有任何优点.

那么我需要做什么才能真正使用呢?这一定非常简单,因为我无法在google,youtube或SO上找到任何关于它的问题.

编辑=>我仍然失败.这是我的故事:

我尝试了部署方法,按照这里的说明进行操作.
由于我更喜欢​​在应用程序中使用键盘,因此我执行了以下操作:

  1. 我添加了 - make install步骤
  2. 我通过qmake了另一个论点"CONFIG+=disable-desktop

它似乎工作.在提到的目录中获得了新文件:

  • C:\ Qt\Qt5.7.0\5.7\mingw53_32\qml\QtQuick\VirtualKeyboard
  • C:\ Qt\Qt5.7.0\5.7\mingw53_32\qml\QtQuick\Virtualkeyboard\Styles
  • C:\ Qt的\ Qt5.7.0\5.7\mingw53_32 \插件\ …

qt qml qt5.7 qtvirtualkeyboard

3
推荐指数
1
解决办法
8671
查看次数

qml 虚拟键盘:keyboardDesignWidth 和 Height

我正在查看虚拟键盘的 QML 样式。keyboardDesignWidth 和 Height 的目的是什么?我似乎在管理键盘的宽度和高度时遇到了很多麻烦,并且永远无法将其设置为我想要的样子。直接设置 keyboardHeight 和 Width 也没有多大帮助。

问题是组件背景大小是以某种方式在幕后计算的。因此,即使我拥有我想要的键盘按钮和大小,无关的背景也会覆盖我的一些其他控件,并且很难对键盘的大小进行细粒度控制。

直接控制虚拟键盘的宽度和大小的正确方法是什么?

qt qml qt-quick qtvirtualkeyboard

3
推荐指数
1
解决办法
4236
查看次数

如何找到包含 QtVirtualKeyboard 的窗口

我在嵌入式设备上使用 qt 小部件,但虚拟键盘有问题。键盘显示为全屏并与所有应用程序重叠。

在Yocto 中的虚拟键盘顶部黑屏一文中描述了如何解决此问题。

简而言之,你需要用键盘找到QQuickWindow,并在这个窗口上调用setMask。然后键盘上方的区域就会变成透明的

我在如何使用虚拟键盘查找 QQuickWindow 时遇到问题。我尝试使用

QApplication::allWidgets()
Run Code Online (Sandbox Code Playgroud)

但窗户不在这里。

c++ qt qtvirtualkeyboard

3
推荐指数
1
解决办法
2326
查看次数

根据QObject调整qtvirtualkeyboard的大小

我正在使用 qml qtvirtual 键盘: https: //github.com/qt/qtvirtualkeyboard

我正在尝试将它与基于小部件的 Qt 应用程序的其余部分“连接”。例如,当我单击 QLineEdit 时,我希望键盘显示出来并在应用程序上下文中像物理键盘一样工作。

为此,我安装了 qtvirtualkeyboard/src 中的内容(qmake && make && make install),这是我的 main.cpp :

#include <QQuickView>
#include <QApplication>
#include <QQmlEngine>
#include <QQmlContext>

int main(int argc, char *argv[]){

    qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard"));

    QApplication app(argc, argv);
    MainWindow w();  // This is a QWidget / QMainWindow
    w.setFixedSize(800, 480);
    w.show();

    return app.exec();
}
Run Code Online (Sandbox Code Playgroud)

当我在桌面上执行此操作时,键盘占据了我屏幕的一半,尽管我的应用程序是 800x480。

当我在带有 7 英寸触摸屏的 Raspberry Pi 上执行它时,键盘占据了页面的一半,并且顶部出现黑色边框。

我想自己修复键盘尺寸。当我创建带有项目等的 QML 文件时,键盘不再显示。

c++ qt qtvirtualkeyboard

1
推荐指数
1
解决办法
4040
查看次数

标签 统计

qtvirtualkeyboard ×10

qt ×7

qml ×6

c++ ×4

pyqt5 ×2

python ×2

qt5.7 ×2

pyqt ×1

python-3.7 ×1

qt-quick ×1

qt5 ×1

raspberry-pi4 ×1

webgl ×1