使用C++和QT,在MainWindow.cpp中完成一个在widget中点击鼠标返回坐标的功能代码
时间: 2024-02-01 16:15:11 浏览: 79
可以在MainWindow.cpp中重载QWidget的mousePressEvent()函数来实现在widget中点击鼠标返回坐标的功能。具体代码如下:
```cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QMouseEvent>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
// 设置widget可接收鼠标事件
ui->widget->setMouseTracking(true);
ui->widget->setAttribute(Qt::WA_Hover, true);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::mousePressEvent(QMouseEvent *event)
{
if (event->button() == Qt::LeftButton)
{
QPoint pos = ui->widget->mapFromGlobal(QCursor::pos());
qDebug() << "Clicked position: (" << pos.x() << ", " << pos.y() << ")";
}
}
```
在构造函数中将widget设置为可接收鼠标事件,并且设置鼠标跟踪和悬停属性。然后重载mousePressEvent()函数,在点击鼠标时获取鼠标点击位置并输出坐标。注意,需要使用mapFromGlobal()函数将全局坐标转换为widget内的局部坐标。
以上代码仅供参考,具体实现方式可能因项目需求而异。
阅读全文