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 ...