在QMainWindow中选择性跟踪鼠标

Selective tracking of mouse in QMainWindow

本文关键字:跟踪 鼠标 选择性 QMainWindow      更新时间:2023-10-16

我对Qt比较陌生。

我正在编写一个应用程序,其中我正在生成伪随机数和密钥,我想用QMainWindow中捕获的随机鼠标移动为生成器播种。此外,我希望能够在用户按下QButton时关闭和打开此功能。

据我所知,我应该能够将connect()disconnect()用于用户移动鼠标时发出的QMainWindow中的信号。这是最好的方法吗?

我的问题是我不确定我应该连接到什么信号。我搜索了Qt文档,但找不到鼠标在QWidget上移动时产生的信号。

您必须覆盖QMainWindow中的void QWidget::mouseMoveEvent ( QMouseEvent * event )才能捕获鼠标移动事件。看见http://qt-project.org/doc/qt-4.8/qwidget.html#mouseMoveEvent

您可能希望在覆盖中执行event->ignore(),以允许事件的传播。

您还必须使用void setMouseTracking ( bool enable )启用鼠标跟踪,才能在未按下按钮时接收鼠标移动事件。看见http://qt-project.org/doc/qt-4.8/qwidget.html#mouseTracking-道具