slot:
void toClicked(); //准备接受单击执行事件
void onMouseClicked(); // 鼠标单双击信号所对应的槽
QTime interval; // 记录两次点击的间隔, 间隔小于100为双击, 超过150为单击
QTimer timer; //利用QTimer的超时来触发单击事件
void onMouseClicked()
{
if ( interval < 100 )
{
disconnect( &timer, SIGNAL( timeout() ), 0, 0 ); //终止发送单击事件
timer.stop(); //停止timer
//执行双击事件
interval.restart();
return;
}
else
{
interval.restart();
timer.start( 150 );
connect(&timer, SIGNAL( timeout() ), this, SLOT( toClicked() ) );
return;
}
}
void toClicked()
{
disconnect( &timer, SIGNAL( timeout() ), 0, 0 ); //终止发送单击事件
timer.stop(); //停止timer
//执行单击事件
}
Qt 区分单双击事件
最新推荐文章于 2021-03-30 11:25:21 发布