QT中的滑鼠移動事件
阿新 • • 發佈:2021-10-03
關注
QMouseEvent類
其中還有press事件、release事件、move事件.......
為了練習move事件,做了一個按鈕跟隨滑鼠小程式
首先我們可以查閱文件:
mouseMoveEvent事件,
[virtual protected] void QWindow::mouseMoveEvent(QMouseEvent *ev);
這是一個虛擬函式,可以用來過載的
我們就在自己的函式中
重寫虛擬函式:
pbt.move(event->x(),event->y()); //設定按鈕跟隨座標
在按鈕建立需要在類中進行.建立成員函式的方式建立
設定PushButton
//直接開啟滑鼠事件
setMouseTracking(true);
-------------------------------------------------------------------------------------------------------
#include "widget.h"
#include "ui_widget.h"
#include <QMouseEvent>
#include <QDebug>
int i = 0;
int j =0 ;
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
resize(800,600);
//直接開啟滑鼠事件
setMouseTracking(true);
pbt.setParent(this);
pbt.setText("歡迎");
pbt.move(350,300);
pbt.resize(80,50);
}
void Widget::mouseMoveEvent(QMouseEvent *event)
{
QString str = QString("滑鼠移動了 x = %1 y =%2 ").arg(event->x()).arg(event->y());
qDebug() <<str;
//按鈕移動
pbt.move(event->x(),event->y());
}
Widget::~Widget()
{
delete ui;
}
----------------
還有
event->button() ==Qt::LeftButton; //左鍵;判斷按鍵
event->buttons() &Qt::LeftButton; //判斷聯合按鈕