gpt4 book ai didi

c++ - 使用 QQuickWidget 运行 QtVirtualKeyboard

转载 作者:行者123 更新时间:2023-12-01 14:07:43 30 4
gpt4 key购买 nike

我正在尝试使 QtVirtualKeyboard 示例与 QQuickWidget 而不是 QQuickView 一起使用。对于 QuickView,我使用以下 main.cpp 代码,这对我来说很好用:

#include <QQuickView>
#include <QGuiApplication>
#include <QQmlEngine>

int main(int argc, char *argv[])
{
qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard"));

QGuiApplication app(argc, argv);

QQuickView view(QString("qrc:/%2").arg(MAIN_QML));
view.setResizeMode(QQuickView::SizeRootObjectToView);
view.show();

return app.exec();
}

在使用以下 main.cpp 实现更改为 QQuickWidgets 时,我遇到了问题:
#include <QQuickWidget>
#include <QApplication>
#include <QQmlEngine>

int main(int argc, char *argv[])
{
qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard"));

QApplication app(argc, argv);

QQuickWidget w(QString("qrc:/%2").arg(MAIN_QML));
w.setResizeMode(QQuickWidget::SizeRootObjectToView);
w.show();

return app.exec();
}

当我点击输入字段时,虚拟键盘会出现,但是当我开始在键盘上输入时,我收到消息“未设置输入法”,这似乎与输入法插件有关。输入字段中不显示任何字符。
有任何想法吗? QML 代码在 main.cpp 的上述变体之间没有变化

顺便说一句:我正在使用 Linux、gcc、Qt 5.9.0、EGLFS 插件

感谢您的任何建议!

问候,
帕特里克

最佳答案

通过 inputMethod documentation 找到 QML 的解决方案.以下解决方法对我有用:

TextArea {
...
onActiveFocusChanged: {
if(activeFocus) {
Qt.inputMethod.update(Qt.ImQueryInput)
}
}
}

也适用于其他控件。

当然 InputPanel应该在 ApplicationWindow 中定义像这样:
ApplicationWindow {
...
InputPanel {
id: inputPanel
...
}
}

关于c++ - 使用 QQuickWidget 运行 QtVirtualKeyboard,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44701805/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com