Qt软键盘插件弹出无法输入

背景:UI上有输入框,软键盘弹出后,点击有反应,但是没有数据输入。


原因:Lineedit等输入控件失去焦点。


解决:主程序中加入焦点切换激活主窗口。


#include "mainwindow.h"
#include 

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

    QApplication a(argc, argv);
    MainWindow w;
    w.show();

    w.activateWindow();
    QObject::connect(&a, &QGuiApplication::focusObjectChanged, [&w]( QObject *fo){
        if(!fo){
            w.activateWindow();
        }
    });

    return a.exec();
}

另外:软键盘插件(.so)一定要放入可执行目录下的platforminputcontexts/目录下。

你可能感兴趣的:(Qt)