QDialog移动鼠标为什么不响应 mousePressEvent
时间: 2023-08-08 20:04:56 浏览: 152
QDialog 对话框Demo
在Qt中,`QDialog`默认情况下是没有开启鼠标跟踪功能的,因此需要手动开启鼠标跟踪,才能够接收到鼠标事件。您可以在`QDialog`的构造函数中调用`setMouseTracking(true)`函数来开启鼠标跟踪功能,或者在重载的`mousePressEvent`函数中调用`setMouseTracking(true)`函数来开启鼠标跟踪功能。以下是一个示例代码:
```
MyDialog::MyDialog(QWidget *parent) : QDialog(parent)
{
setMouseTracking(true); // 开启鼠标跟踪功能
}
void MyDialog::mousePressEvent(QMouseEvent *event)
{
QPoint pos = event->pos();
qDebug() << "Mouse position: " << pos;
}
```
在这个示例中,我们在`MyDialog`的构造函数中调用了`setMouseTracking(true)`函数,开启了鼠标跟踪功能,并在重载的`mousePressEvent`函数中获取了鼠标位置信息。现在您可以在`MyDialog`中移动鼠标,并且能够接收到鼠标事件了。
阅读全文