mousePressEvent 获取鼠标在QWidget 中的位置
时间: 2025-02-11 21:40:04 浏览: 66
在 `QMainWindow` 或者 `QWidget` 的子类中,当发生 `mousePressEvent` 时,你可以直接从提供的 `QMouseEvent` 对象中获取鼠标在窗口中的当前位置。`QMouseEvent` 类包含了很多关于鼠标操作的信息,包括坐标等。以下是获取鼠标点击位置的一般步骤:
```cpp
#include <QMainWindow>
#include <QMouseEvent>
class MyWidget : public QMainWindow {
public:
MyWidget(QWidget *parent = nullptr) : QMainWindow(parent) {}
protected:
void mousePressEvent(QMouseEvent *event) {
// 获取鼠标点击时的屏幕坐标
QPoint pos = event->pos();
// 在这里,pos 可以用于后续处理,例如打印、存储或在屏幕上标识点击位置
qDebug() << "Mouse clicked at position: (" << pos.x() << ", " << pos.y() << ")";
}
};
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
MyWidget window;
window.setGeometry(100, 100, 400, 300); // 设置窗口大小及位置
window.show();
return app.exec();
}
```
在这个例子中,`event->pos()` 返回的是一个 `QPoint` 对象,包含了鼠标点击时相对于窗口左上角的 x 和 y 坐标。你可以修改这个位置来适应你的具体需求。
阅读全文
相关推荐


















