在QMainWindow中选择性跟踪鼠标

时间:2012-03-09 01:31:02

标签: c++ qt

我对Qt比较陌生。

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

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

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

1 个答案:

答案 0 :(得分:3)

您必须覆盖void QWidget::mouseMoveEvent ( QMouseEvent * event )中的QMainWindow才能捕获鼠标移动事件。见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-prop