почему qml virtualkeyboard не отображается после нажатия на редактировать текст, а я вызываю плагин в .pro и main.cpp - PullRequest
0 голосов
/ 01 сентября 2018

Я использую открытый код qt5.9 для встроенного устройства. Я хочу использовать виртуальную клавиатуру в своем проекте qml. Я знаю, что я должен добавить статическую ссылку в файл .pro, например:

static {
    QT += svg
    QTPLUGIN += qtvirtualkeyboardplugin
}

, а также добавить

#include <QGuiApplication>
#include <QQmlApplicationEngine>

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

    QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
    QGuiApplication app(argc, argv);
    QQmlApplicationEngine engine;
    engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
    if (engine.rootObjects().isEmpty())
        return -1;
    return app.exec();
}

в файл main.cpp для использования виртуальной клавиатуры. но моя виртуальная клавиатура не срабатывает при нажатии на мой текстовый объект:

import QtQuick 2.9
import QtQuick.Window 2.2
import QtQuick.VirtualKeyboard 2.1

Window {
    visible: true
    width: 640
    height: 480

        TextInput {
            id: textInput;
            text:"ssssss"
            height: 120;
            width: parent.width - 2;
            anchors.bottom: keyboard.top
            color: "#000000"; // black

            // http://doc.qt.io/qt-5/qinputmethod.html#properties
            focus: Qt.inputMethod.visible;

            verticalAlignment: TextInput.AlignVCenter;
        }
}

1 Ответ

0 голосов
/ 01 сентября 2018

решено.
просто введите вид ввода для каждого lineedit. как это:

InputPanel{
        id:inputpanel
        visible:active
        y:active?parent.height - inputpanel.height : parent.height
        anchors.left: parent.left
        anchors.right: parent.right

    }
    TextInput{
        id:input
        inputMethodHints: Qt.ImhDigitsOnly
        focus: Qt.inputMethod.visible;
        text: "123211"

    }
    TextInput{
        id:input2
        anchors.top:input.bottom
        inputMethodHints: Qt.ImhLowercaseOnly
        focus: Qt.inputMethod.visible;
        text: "123211"

    }
...