qt 双击事件处理

qt双击事件响应和实现

      接着上面的播放器全屏功能来写,一般播放器的全屏都是通过双击左键来实现的。
qt中有一个事件叫做mouseDoubleClickEvent,对应的就会有一个函数来处理这个事件,那就是void mouseDoubleClickEvent (* e )函数,它是一个虚函数,每当对应的类产生双击事件时,就会自动调用这个函数,前提是这个类有这个函数。qt4中以下类有这个函数:

我们使用的QGraphicsView类是继承了QAbstractScrollArea的mouseDoubleClickEvent函数,咱们的任务就是把这个函数重构一下就可以了。
首先在头文件中声明一下:
protected:
    void mouseDoubleClickEvent ( QMouseEvent * );
然后cpp文件中就可以这样处理:

/*---------------------------------------------------------------------------

函数名:鼠标双击事件

函数功能:对鼠标双击的响应

函数输入:QMouseEvent *mouseEvent

函数输出:无

备注:

---------------------------------------------------------------------------*/

void 类名::mouseDoubleClickEvent(QMouseEvent *mouseEvent)

{

//这是我声明的一个用来判断是应该全屏还是退出全屏的标志位,是个unsigned char型,可换成bool的

gIndex = ~gIndex; //每次翻转一次

if( mouseEvent->buttons() == Qt::LeftButton) //判断是否左键双击

{

//这个是一个停止双击延时,双击延时用来区分单击和双击,可暂时不用,下一篇文章将介绍如何区分

//delayTimer->stop();

if(gIndex & 0x1)

emit fullScreen(); //发送全屏信号

else

emit subwindow(); //退出全屏

}

}

然后把前面介绍的信号和槽连接起来就能实现简单的双击全屏了。

connect(类名, SIGNAL(fullScreen()), this, SLOT(fullScreenSlot()));

connect(类名, SIGNAL(subwindow()), this, SLOT(subWindowGraphic()));


  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值