文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>Qt中判断鼠标的双击和单击事件

Qt中判断鼠标的双击和单击事件

时间:2010-11-22  来源:王思源

这个方法是下面参考[1]的实现,感谢!

2问题来源

Qt中,在双击事件mouseDoubleClickEvent中会触发单击事件mousePressEvent事件,原因是[见1]:

(1).鼠标 按下->弹起 ,一个单击信号就发射了
(2).在单击后的一段(很短)的时间内,鼠标 按下->弹起,一个双击信号发射

3解决方法

启动timer计时,在一段时间内,没有双击信号,则做出单击响应,否则做双击相应[见1]

 

(1)类的头文件中添加槽和计时器

注意:加入槽函数是要加上Q_OBJECT宏

public slots:
void mouseClick();

private:
  QTimer
*timer;

 

(2)在构造函中
timer = new QTimer(this);
connect(timer, SIGNAL(timeout()),
this, SLOT(mouseClick()));

 

(3)单击事件

注意:根据我的测试时间间隔最小设为200,再小就不行了,不知道为什么,求解答

void PaintArea::mousePressEvent(QMouseEvent *event)
{
  timer
->start(200);
}

 

(4)双击事件
void PaintArea::mouseDoubleClickEvent(QMouseEvent *event)
{
  timer
->stop();
  
//双击要做的事
}

 

(5)槽函数
void PaintArea::mouseClick()
{
  
//单击要做的事
}

 

 

参考:

[1]http://topic.csdn.net/u/20100919/15/c620463f-2a2d-4201-985b-47d3b044cb8d.html 的三楼 dbzhang800 的回复

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载