
我在制作一個功能時,需要把Widget的滑鼠事件傳到父控制元件,所以用了setAttribute(Qt::WA_TransparentForMouseEvents, true);
代碼:
MoveWidget_task = new Widget_task;
MoveWidget_task->setAttribute(Qt::WA_TransparentForMouseEvents, true);
Widget_task這個繼承于Widget,沒有重寫滑鼠事件。
這樣并沒有實作我的效果,我的滑鼠事件沒傳過去。
我后來在Widget_task的建構式中寫了這段代碼。
Widget_task::Widget_task(QWidget * parent /*= nullptr*/)
: QWidget(parent)
{
this->setAttribute(Qt::WA_TransparentForMouseEvents, true);
}
這樣就修好了,事件能傳過去了,哪位大神知道為什么啊,這個setAttribute有什么作用域嗎?
uj5u.com熱心網友回復:
我發現,我設定這個屬性是在MousePress事件里面,就是第一段代碼里面的MoveWidget_task = new Widget_task;
MoveWidget_task->setAttribute(Qt::WA_TransparentForMouseEvents, true);
是在Press事件里面,會不會是這個原因
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/130709.html
標籤:Qt
