case QEvent::MouseButtonDblClick:
{
connect(xxxx, SIGNAL(dblclick()), yyyy, SLOT(fun()));
}
疑問:單次雙擊是否能立即觸發槽函數 fun()?
不能立即執行。原因在於:
connect() 僅建立信號與槽的關聯,不發射信號case 分支,但 xxxx 對象尚未發射 dblclick() 信號// 構造函數或初始化階段預先連接
connect(sender, &Sender::dblclick, receiver, &Receiver::fun);
// 事件處理中僅做業務判斷
case QEvent::MouseButtonDblClick:
if (condition) sender->triggerDblClick(); // 主動發射信號
break;
case 中調用槽函數或發射信號