??ui->listWidget->installEventFilter(this);
bool MyAppointmentInfoForm::eventFilter(QObject *obj, QEvent *event)
if(obj == ui->listWidget)
{
qDebug() << "listwidget的事件";
if(event->type() == QEvent::MouseButtonPress)
{
QMouseEvent *mouseevent = static_cast<QMouseEvent *>(event);
if(mouseevent->buttons() == Qt::LeftButton)
{
qDebug() << "listwidget的點擊事件";
m_seeAppointmentDetails->close();
}
}
}else
{
return MyAppointmentInfoForm::eventFilter(obj,event);
}
}
事件的type()如果寫成QEvent::KeyPress就可以檢測到,但是QEvent::MouseButtonPress 怎么也檢測不到,求教!!?
uj5u.com熱心網友回復:
mousePress吧,應該uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
mouseevent->buttons()==改成 button,或者把==改成&uj5u.com熱心網友回復:
都不行,還是沒反應uj5u.com熱心網友回復:
剛在查其他問題的時候,碰到這么一段話:網上查到了好多種方法,1.添加過濾器(eventFilter),2.重寫滑鼠單擊事件,這兩種方法都要判斷滑鼠單擊位置是不是在子視窗上。而且在可編輯控制元件上如(下拉框、文本編輯框等),父視窗會直接傳遞到可編輯控制元件上,過濾器和重寫的滑鼠事件無法獲取單擊事件。
http://www.bubuko.com/infodetail-2835267.html?__cf_chl_jschl_tk__=b706b8cbbac655ce7fdfcd3b90e51e83b00b44e2-1587197168-0-AYG7Jzh0rN65TCEPbQusIxkugH2eCQvdAFyKchc_ND1TRle7BmmwHUTrC-XQu1dD9n6f6XPM-dktqqeKoa6ZtmUIC_Fy8OLdxomrDs0U2U_oW58kx7MWoneTQuN7SdnC2cxibynwi7bof016Kr8hCzsUXoylcJi_YgYqiAJzbS-WAizuQhDsoCiw7D-jvO-u3Fjw9FrnMFwiF5bGW-SvcV-opArXrBDJpQvHV5DN5J1r89agrgueAb2-g341WZGx3QRol7cXd96h5Fa7ZnmNTD1lKzwYd0ZrR9_ATZFTmqamFPDUJh9QSCToLe7leFBB6g
所以我也不在這個問題上糾結了,也分享給你。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/81094.html
標籤:C++ 語言
上一篇:求區間素數
下一篇:有沒有大佬可以給寫個演算法..
