要在 Qt 中实现鼠标双击事件时不执行单击操作,可以通过重写鼠标单击事件处理函数来实现。

首先,在自定义的 QWidget 或 QLabel 派生类中,重写鼠标单击事件处理函数 'mousePressEvent(QMouseEvent *event)',并在该函数中判断鼠标事件类型和鼠标点击次数。

void MyWidget::mousePressEvent(QMouseEvent *event)
{
    if (event->button() == Qt::LeftButton)
    {
        if (event->type() == QEvent::MouseButtonDblClick)
        {
            // 处理双击事件
            qDebug() << 'Double clicked!';
        }
        else if (event->type() == QEvent::MouseButtonPress)
        {
            // 处理单击事件
            qDebug() << 'Clicked!';
        }
    }
}

在上述代码中,我们首先判断鼠标事件的按钮类型是否为左键('Qt::LeftButton'),然后再根据鼠标事件类型判断是单击事件('QEvent::MouseButtonPress')还是双击事件('QEvent::MouseButtonDblClick')。

如果是双击事件,则执行相应的双击操作;如果是单击事件,则不执行任何操作。

注意,这里使用了 'qDebug()' 函数来输出调试信息,你可以根据自己的需求来处理单击和双击事件。

Qt 鼠标双击事件不触发单击事件

原文地址: https://www.cveoy.top/t/topic/qu5Z 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录