qiang4119 发表于 2023-10-10 11:14:13

在qt工程内加入dwkeyboard会卡死

我是多个界面,只有一个界面在使用键盘功能
ui->setupUi(this);
    GlobalInit();
    ui->Edit_password->installEventFilter(this);
    setWindowState(Qt::WindowMaximized);
    setWindowFlags(Qt::FramelessWindowHint | Qt::WindowTitleHint | Qt::WindowCloseButtonHint);界面设置初始化后加入键盘初始化,关联到edit,edit使用的是line_edit。
bool w_user::eventFilter(QObject *watched, QEvent *event)
{
    static bool mFocusIn = false;
    if (event->type()==QEvent::FocusIn)
    {
    mFocusIn = true;
    }
    else if (event->type()==QEvent::FocusOut)
    {
    PlatformInputContextBase->FocusOut(watched);
    mFocusIn = false;
    }

    if (mFocusIn && event->type() == QEvent::MouseButtonPress) {
    QMouseEvent *e = (QMouseEvent *)event;
    PlatformInputContextBase->FocusIn(watched, e->globalPos());
    }

    return w_user::eventFilter(watched,event);
}
事件代码也加入了进来。
后续建立的线程和界面显示都没有了,直接卡死了。

forqs 发表于 2023-10-10 13:59:29

可以参考我们的qtdemo看看,比如OK3568-linux-source/app/forlinx/forlinx_qt/ping_test

qiang4119 发表于 2023-10-10 14:09:06

本帖最后由 qiang4119 于 2023-10-10 14:22 编辑

forqs 发表于 2023-10-10 13:59
可以参考我们的qtdemo看看,比如OK3568-linux-source/app/forlinx/forlinx_qt/ping_test
是参考的例程,但是我这边加了很多功能,会有哪些东西影响呢?我用的是widget调用的

qiang4119 发表于 2023-10-10 14:39:02

qiang4119 发表于 2023-10-10 14:09
是参考的例程,但是我这边加了很多功能,会有哪些东西影响呢?我用的是widget调用的

找到原因了,无法直接在widget内使用,只能在mainwindow使用,在mainwindow上调用widget的控件进行注册就行了。

qiang4119 发表于 2023-10-11 09:01:42

DWKeyboard如何调整位置,有文档吗?@forqs
页: [1]
查看完整版本: 在qt工程内加入dwkeyboard会卡死