如何在动态创建的QWidget上安装eventFilter

How to install eventFilter on dynamically created QWidget?

本文关键字:QWidget 安装 eventFilter 创建 动态      更新时间:2023-10-16

我只有一个QMainWindow与主窗口。UI中有表格,按钮等。从一个按钮,我想动态地创建小部件,并设置一个evenFilter在它上面。

QWidget dialog = new QWidget();
dialog->installEventFilter(this);

当我编译程序时,它说QObject::installEventFilter(): Cannot filter events for objects in a different thread.

我如何将这个小部件添加到线程与其他qobject或什么是这个问题的最佳解决方案?

你不应该从非gui线程创建gui小部件。

创建QWidget的子类并安装eventFilter,放入内部信号返回结果。

然后从你的线程发送信号到主线程插槽来创建这个QWidget dialog = new MyWidget()并按你想要的使用