找回密码
 立即注册
收起左侧

鼠标双击事件

3
回复
7744
查看
[复制链接]
累计签到:46 天
连续签到:1 天
来源: 2013-9-16 23:04:41 显示全部楼层 |阅读模式
1Qter豆
void Widget::mouseDoubleClickEvent(QMouseEvent *event){    if(event ->button() ==Qt::LeftButton)    {        if(windowState()!=Qt::WindowFullScreen)            setWindowState(Qt::WindowFullScreen);        else            setWindowState(Qt::WindowNoState);    }}
这段程序实现双击使其全屏,if(event ->button() ==Qt::LeftButton) 判断鼠标左键是否按下?但是是怎么样判断鼠标左键是双击呢?谢谢指教...

最佳答案

查看完整内容

这样 就可以判断了,双击就停止timer,单击的话,400毫秒之内,没再点击就是单击事件
回复

使用道具 举报

累计签到:410 天
连续签到:1 天
2013-9-16 23:04:42 显示全部楼层
这样 就可以判断了,双击就停止timer,单击的话,400毫秒之内,没再点击就是单击事件
回复

使用道具 举报

累计签到:410 天
连续签到:1 天
2013-9-17 08:50:58 显示全部楼层
百度里面一搜就有啊
首先 你定义一个timer
举例
connect( timer, SIGNAL(timeout()),this, SLOT(mouseClick()));

void Widget::mousePressEvent(QMouseEvent *e)
{
    mouse = e->button();
    timer->start(400);
}

void Widget::mouseClick()
{
    timer->stop();
    if(mouse == Qt:eftButton)
        ui->textEdit->append("LeftButton Pressed");
    else if(mouse == Qt::RightButton)
        ui->textEdit->append("RightButton Pressed");
    else if(mouse == Qt::MiddleButton)
        ui->textEdit->append("MiddleButton Pressed");
    else if(mouse == Qt::XButton1)
        ui->textEdit->append("XButton1 Pressed");
    else if(mouse == Qt::XButton2)
        ui->textEdit->append("XButton2 Pressed");
}


void Widget::mouseDoubleClickEvent(QMouseEvent *e)
{
    timer->stop();
    if(e->button() == Qt:eftButton)
        ui->textEdit->append("LeftButton DoubleClicked");
    else if(e->button() == Qt::RightButton)
        ui->textEdit->append("RightButton DoubleClicked");
    else if(e->button() == Qt::MiddleButton)
        ui->textEdit->append("MiddleButton DoubleClicked");
    else if(e->button() == Qt::XButton1)
        ui->textEdit->append("XButton1 DoubleClicked");
    else if(e->button() == Qt::XButton2)
        ui->textEdit->append("XButton2 DoubleClicked");
}
回复

使用道具 举报

累计签到:46 天
连续签到:1 天
2013-9-17 09:48:58 显示全部楼层
本帖最后由 kang清峻 于 2013-9-17 10:13 编辑
a408815041 发表于 2013-9-17 08:53
这样 就可以判断了,双击就停止timer,单击的话,400毫秒之内,没再点击就是单击事件
非常感谢 非常感谢 努力学习中...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了