为啥单击编辑文本后不显示qml虚拟键盘,而我在.pro和main.cpp中调用插件

Posted

技术标签:

【中文标题】为啥单击编辑文本后不显示qml虚拟键盘,而我在.pro和main.cpp中调用插件【英文标题】:why qml virtualkeyboard is not show after click on edit text ,while I call plugin in .pro and main.cpp为什么单击编辑文本后不显示qml虚拟键盘,而我在.pro和main.cpp中调用插件 【发布时间】:2018-09-01 07:28:09 【问题描述】:

我将开源 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;
        

【问题讨论】:

"为什么 qml virtualkeyboard 不火" 你期待什么?如果着火了,有人打电话给消防队吗? 在我的文本编辑中点击(触摸)时它不显示 【参考方案1】:

解决了。 只需为每个 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"

    

【讨论】:

以上是关于为啥单击编辑文本后不显示qml虚拟键盘,而我在.pro和main.cpp中调用插件的主要内容,如果未能解决你的问题,请参考以下文章

ExtJS Combobox Rowediting在单击更新后不显示最新值

Qt虚拟键盘全屏

无法通过单击选择文本字段(Swift)

当我在显示的键盘上单击文本字段两次时,iOS UIScrollView 无法滚动

单击已显示键盘的第二个UITextField会错误地移动内容

.html 工作,但 ajax 请求后不出现文本