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");
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-18 18:13:41

Qt鼠标双击事件mouseDoubleClickEvent(QMouseEvent* event)的相关文章

IE和Chrome执行javascript对鼠标双击事件的不同响应

最近在用天地图API帮同学做点开发的工作,主要是基于天地图的API实现违法用地举报的在线地图标绘,要实现的效果如下: 由于是基于天地图API的TPolygonTool工具实现面积量测和多边形绘制功能,实现思路如下: (1)基于按钮的鼠标点击事件开启多边形标绘工具: 1 //开启/关闭违法标绘工具 2 function onClickPolyTool() { 3 var btn = document.getElementById("polyToolBtn"); 4 if (btn.val

BaseTool中鼠标双击事件获取鼠标位置的方法

ArcGISEngine的BaseTool类中提供了鼠标双击.鼠标移动.鼠标按键按下.鼠标按键弹起四种鼠标事件,但是鼠标双击事件的参数跟其他三种不一样,双击事件中没有提供鼠标位置信息. public virtual void OnDblClick(); public virtual void OnMouseDown(int Button, int Shift, int X, int Y); public virtual void OnMouseMove(int Button, int Shift

Silverlight 鼠标双击 事件

Silverlight 双击事件例子 <UserControl x:Class="MouseDbClick.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsof

Unity 如何检测鼠标双击事件

代码如下: 1 void OnGUI(){ 2 Event e=Event.current; 3 if(e.isMouse&&(e.clickCount==2)) 4 Debug.Log("用户双击了鼠标"); 5 }

winform listbox增加鼠标双击事件

在Form.Designer.cs文件中对于listBox处理: listBox.MouseDoubleClick += new system.Windows.Forms.MouseEventHandler(listBox1_MouseDoubleClick); 在Form.cs代码文件中增加函数: private void listBox1_MouseDoubleClick(object sender, MouseEventArgs e) { int index = listBox1.Inde

WPF DataGrid 鼠标双击选中的DataGridRow及Row数据

设置DataGrid的MouseDoubleClick事件 代码 //DataGrid鼠标双击事件 Private void dataGrid_MouseDoubleClick(object sender, MouseButtonEventArgs e) { if(this.dataGrid.SelectedIndex == -1) { return; } DataGridRow row = (DataGridRow)dataGrid.ItemContainerGenerator.Contain

设置鼠标滚动事件

当QScrollview内容过多出现滚动条时,此时如果把鼠标移到里面的一个button上并滚动滑轮时,可以看到QScrollview并不会出现滚动的情况,因此我们就需要为button添加一个滚动事件 注:SubTitlePushButton继承于QPushButton,自定义的一个button类,然后在里面添加鼠标滚动事件 bool SubTitlePushButton::event(QEvent *event) { /* if (event->type() == QEvent::Paint)

Qt编程获取鼠标移动事件

想做下面一个效果:想当鼠标移动到按钮上的时候,按钮就变大,图标换个大的,鼠标不在按钮上的时候,按钮就变小,图标也换成小的,感觉比较Cool 实现原理:为每个按钮设置监听属性 void MainHomeForm::init() { //为按钮注册事件 ui->SystemSetButton->installEventFilter(this); ui->ZoneSetButton->installEventFilter(this); } //系统监听器监听按钮对象 bool MainH

javascript鼠标双击时触发事件大全

javascript事件列表解说 事件 浏览器支持 解说 一般事件 onclick IE3.N2 鼠标点击时触发此事件 ondblclick IE4.N4 鼠标双击时触发此事件 onmousedown IE4.N4 按下鼠标时触发此事件 onmouseup IE4.N4 鼠标按下后松开鼠标时触发此事件 onmouseover IE3.N2 当鼠标移动到某对象范围的上方时触发此事件 onmousemove IE4.N4 鼠标移动时触发此事件 onmouseout IE4.N3 当鼠标离开某对象范围