Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt 有没有办法将鼠标事件添加到线程中?_Qt_Mouseevent_Qthread - Fatal编程技术网

Qt 有没有办法将鼠标事件添加到线程中?

Qt 有没有办法将鼠标事件添加到线程中?,qt,mouseevent,qthread,Qt,Mouseevent,Qthread,我怀疑有什么东西阻止我的鼠标事件在Qt中调用。因此,我认为将事件添加到线程可能会有所帮助。有办法吗?如果是这样,语法会是什么样子?Qt标准鼠标事件会出现在QWidget对象上。这些必须始终存在于主线程中 因此,不能在其他线程中接收正常的鼠标事件 但是,您可能应该在主窗口或qApp对象上安装一个事件过滤器,以便查看所有事件。在文档中查找如何使用事件筛选器,但简而言之,您需要子类QObject来覆盖eventFilter方法,然后创建该类的实例,并将其安装为另一个对象的事件筛选器。没有什么可以阻止它

我怀疑有什么东西阻止我的鼠标事件在Qt中调用。因此,我认为将事件添加到线程可能会有所帮助。有办法吗?如果是这样,语法会是什么样子?

Qt标准鼠标事件会出现在
QWidget
对象上。这些必须始终存在于主线程中

因此,不能在其他线程中接收正常的鼠标事件


但是,您可能应该在主窗口或
qApp
对象上安装一个事件过滤器,以便查看所有事件。在文档中查找如何使用事件筛选器,但简而言之,您需要子类
QObject
来覆盖
eventFilter
方法,然后创建该类的实例,并将其安装为另一个对象的事件筛选器。

没有什么可以阻止它-请确切地告诉我们您正在尝试执行的操作。你做错了什么,但根本没有什么根本的原因。关注更大的问题,而不是特定的问题。问题是当我的代码的某一部分被编辑掉时,鼠标点击事件会起作用。该代码与鼠标事件没有关联(它基本上只是将一组标签作为矩阵添加到GUI中)。但是谢谢你的建议:)这与它有着千丝万缕的联系。你错了。