【问题标题】:Qt Virtual Keyboard in QQuickWidgetQQuickWidget 中的 Qt 虚拟键盘
【发布时间】:2020-05-03 17:50:35
【问题描述】:

可以在 QQuickWidget 或 QWidget 中显示虚拟键盘吗?

我有 QWidget 应用程序,我需要更好地控制 VirtualKeyboard 的显示位置。

今天我整天都在寻找解决方案,不幸的是没有成功。

【问题讨论】:

  • 一些反馈??'

标签: qt qt5 virtual-keyboard qquickwidget


【解决方案1】:

以下代码说明在QQuickWidget中使用虚拟键盘是有效的。

ma​​in.cpp

#include <QApplication>
#include <QQmlApplicationEngine>
#include <QQuickWidget>

int main(int argc, char *argv[])
{
    qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard"));
    QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
    QApplication app(argc, argv);
    QQuickWidget widget;
    widget.setResizeMode(QQuickWidget::SizeRootObjectToView);
    widget.setSource(QStringLiteral("qrc:/main.qml"));
    widget.show();
    return app.exec();
}

ma​​in.qml

import QtQuick 2.14
import QtQuick.Window 2.14
import QtQuick.VirtualKeyboard 2.14

Rectangle {
    id: window
    width: 640
    height: 480

    TextEdit{
        text: "Hello world"
        anchors.centerIn: parent
    }

    InputPanel {
        id: inputPanel
        z: 99
        x: 0
        y: window.height
        width: window.width

        states: State {
            name: "visible"
            when: inputPanel.active
            PropertyChanges {
                target: inputPanel
                y: window.height - inputPanel.height
            }
        }
        transitions: Transition {
            from: ""
            to: "visible"
            reversible: true
            ParallelAnimation {
                NumberAnimation {
                    properties: "y"
                    duration: 250
                    easing.type: Easing.InOutQuad
                }
            }
        }
    }
}

qml.qrc

<RCC>
    <qresource prefix="/">
        <file>main.qml</file>
    </qresource>
</RCC>

59777221.pro

QT += quickwidgets virtualkeyboard
CONFIG += c++11
DEFINES += QT_DEPRECATED_WARNINGS
SOURCES +=  main.cpp
RESOURCES += qml.qrc
├── 59777221.pro
├── main.cpp
├── main.qml
└── qml.qrc

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-29
  • 1970-01-01
  • 2017-10-25
  • 1970-01-01
  • 2021-07-21
  • 1970-01-01
相关资源
最近更新 更多