1. 程式人生 > 其它 >QT中的滑鼠移動事件

QT中的滑鼠移動事件

關注

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;   //判斷聯合按鈕