1. 程式人生 > >Qt滑鼠雙擊事件mouseDoubleClickEvent(QMouseEvent* event)

Qt滑鼠雙擊事件mouseDoubleClickEvent(QMouseEvent* event)

重寫mouseDoubleClickEvent(QMouseEvent event)*

1、例項:雙擊視窗時輸出“sss”


/*widget.h*/
#ifndef WIDGET_H
#define WIDGET_H

#include<QWidget>
#include<QDebug>

class Widget : public QWidget
{
    Q_OBJECT
public:
    Widget(QWidget* parent=0);
    ~Widget(){}
protected:
    //宣告
    void mouseDoubleClickEvent
(QMouseEvent*); }; #endif
/*widget.cpp*/
#include"widget.h"
#include<QMouseEvent>

Widget::Widget(QWidget* parent) : QWidget(parent)
{
}

//重寫
void Widget::mouseDoubleClickEvent(QMouseEvent* event)
{
    qDebug("sss");
}

/*main.cpp*/

#include"widget.h"
#include<QApplication>

int main(int
argc,char* argv[]) { QApplication app(argc,argv); Widget w; w.show(); return app.exec(); }

這裡寫圖片描述

我在Widget裡放置了ListWidget後,在Widget類中重寫了mouseDoubleClickEvent,但是不知道為何觸發不了。之後改在ListWidget類中重寫mouseDoubleClickEvent,這樣是可以觸發滑鼠雙擊事件的。

2、左鍵雙擊,右鍵雙擊

   上面預設是不分滑鼠左右鍵的,也可以判斷是左鍵雙擊還是右鍵雙擊觸發:


void
Widget::mouseDoubleClickEvent(QMouseEvent* event) { if(event->button()==Qt::LeftButton) qDebug("Left"); if(event->button()==Qt::RightButton) qDebug("Right"); }

這裡寫圖片描述