qt 視窗帶陰影

2021-09-28 20:07:46 字數 893 閱讀 7628

qframe *frame = new qframe(this);

ui.setupui(this);

frame->setstylesheet("qframe"); //設定圓角與背景透明

frame->setgeometry(5, 5, this->width() - 10, this->height() - 10);//設定有效範圍框

qgraphicsdropshadoweffect *shadow_effect = new qgraphicsdropshadoweffect(this);

shadow_effect->setoffset(0, 0);

shadow_effect->setcolor(qt::black);

shadow_effect->setblurradius(10);

frame->setgraphicseffect(shadow_effect);

...this->setstylesheet("qwidget"); //設定圓角與背景透明

this->setattribute(qt::wa_translucentbackground);//特別注意這句  //如果發現沒有效果,那可能你設定了底層布局的問題。因為你可能設定了底層布局setcontentsmargins的關係,如是,調整這個函式的引數即可

//this->setwindowflags(qt::framelesswindowhint);

this->setmousetracking(true);

this->setwindowflags(qt::framelesswindowhint | qt::windowsystemmenuhint | qt::windowminmaxbuttonshint);

當然這個不是最好的辦法。重寫printevent可能最好用

Qt 中實現陰影視窗

陰影視窗的實現方法一般有三種,方法一是 在視窗的建構函式中設定視窗的屬性為 setattribute qt wa translucentbackground 從而保證視窗不被繪製的部分透明化。接著重寫繪製函式paintevent 其 示例如下 void qt test paintevent qpai...

QT 設定視窗陰影,設定視窗圓角

qt開發過程中,新增過自定義標題欄後,因為設定了 setwindowflags qt framelesswindowhint 屬性,widget介面後面陰影沒有了。現在使用paint的方法繪製陰影和視窗圓角,一方面能設定陰影,一方面可解決設定的視窗圓角後,仍殘留四個小角的問題。廢話不說 上 先設定屬...

QT筆記之實現陰影視窗

方法一 實現 在視窗建構函式中加入 setattribute qt wa translucentbackground 保證不被繪製上的部分透明 重寫void paintevent qpaintevent event void qt test paintevent qpaintevent event ...