Qtの開発--QMouseEventマウスイベント

ディレクトリ

レンダリング:

ステータス情報を表示します+ QMouseEvent下QStatusBarマウスイベント

mouseevent.cpp

mouseevent.h


レンダリング:

ステータス情報を表示します+ QMouseEvent下QStatusBarマウスイベント

mouseevent.cpp

#include "mouseevent.h"

mouseevent::mouseevent(QWidget *parent)
    : QMainWindow(parent)
{
    setWindowTitle(QStringLiteral("鼠标事件"));
    setWindowIcon(QIcon("icon.png"));

    //显示鼠标当前实时位置
    statusLabel = new QLabel;
    statusLabel->setText(QStringLiteral("当前位置:"));
    statusLabel->setFixedWidth(100);

    //显示鼠标按下或释放时的实时位置
    MousePosLabel = new QLabel;
    MousePosLabel->setText(QStringLiteral(""));
    MousePosLabel->setFixedWidth(100);

    //添加控件
    statusBar()->addPermanentWidget(statusLabel);
    statusBar()->addPermanentWidget(MousePosLabel);

    //开启鼠标追踪
    this->setMouseTracking(true);

    resize(600,400);
}

mouseevent::~mouseevent()
{

}

//鼠标点击事件
void mouseevent::mousePressEvent(QMouseEvent *e){
    QString str = "("+QString::number(e->x())+","+QString::number(e->y())+")";
    if(e->button()==Qt::LeftButton){//左键按下
        statusBar()->showMessage(QStringLiteral("左键:")+str);
    }else if(e->button()==Qt::RightButton){//右键按下
        statusBar()->showMessage(QStringLiteral("右键:")+str);
    }else if(e->button()==Qt::MidButton){//中间键按下
        statusBar()->showMessage(QStringLiteral("中间键:")+str);
    }
}

//鼠标移动事件
void mouseevent::mouseMoveEvent(QMouseEvent *e){
    MousePosLabel->setText("("+QString::number(e->x())+","+QString::number(e->y())+")");
}

//鼠标释放事件
void mouseevent::mouseReleaseEvent(QMouseEvent *e){


}

//鼠标双击事件
void mouseevent::mouseDoubleClickEvent(QMouseEvent *e){



}

mouseevent.h

#ifndef MOUSEEVENT_H
#define MOUSEEVENT_H

#include <QMainWindow>
#include <QLabel>
#include <QStatusBar>
#include <QMouseEvent>

class mouseevent : public QMainWindow
{
    Q_OBJECT

public:
    mouseevent(QWidget *parent = nullptr);
    ~mouseevent();

protected:
    void mousePressEvent(QMouseEvent *e);
    void mouseMoveEvent(QMouseEvent *e);
    void mouseReleaseEvent(QMouseEvent *e);
    void mouseDoubleClickEvent(QMouseEvent *e);

private:
    QLabel *statusLabel;
    QLabel *MousePosLabel;
};

#endif // MOUSEEVENT_H

 

公開された248元の記事 ウォンの賞賛255 ビュー110 000 +

おすすめ

転載: blog.csdn.net/qq_41895747/article/details/104095450