Qt 鼠标双击事件不触发单击事件
要在 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()' 函数来输出调试信息,你可以根据自己的需求来处理单击和双击事件。
原文地址: https://www.cveoy.top/t/topic/qu5Z 著作权归作者所有。请勿转载和采集!