0%

Qt中QMouseEvent的应用

在Qt的编程中,难免会碰到要用鼠标事件来处理,所以就涉及到重写鼠标事件;开始的时候,包括本人在内的许多人不理解怎么重写鼠标事件,下面简单举一个例子来说明如何使用。

1
2
3
4
5
6
void mainWindow::mousePressEvent(QMouseEvent *event) {
if (event->button() == Qt::LeftButton) {
f = event->x();
g = event ->y();
}
}

上面的例子,是捕获鼠标的坐标位置,但是很多人会发现这样写捕获不了其他的触摸响应。因为重写了mousePressEvent事件,并没有写上其他的响应事件,但是只要加上一句简单的继承语句,例如

1
2
3
4
mainWindow::mainWindow(QWidget *parent) : QGraphicsView(parent) {
//表示mainWindow是继承QGraphicsView的,所以在mousePressEvent函数后面加上一句
QGraphicsView::mousePressEvent(event);
}

表示除了自己重写的操作外,还继承父类的鼠标事件,其实就是c++里面继承的问题。