Qt 非window子窗體的透明度設定

2021-05-28 05:44:01 字數 1139 閱讀 5396

心血來潮,想利用qtimer 配合 

setwindowopacity()方法來實現乙個窗體淡入的效果。

粗糙的實驗**:

void widget::on_pushbutton_clicked()

void widget::changeopacity()

; ui->stackedwidget->setwindowopacity(opacity[opalevel]);

ui->widget->setwindowopacity(opacity[opalevel]);

this->setwindowopacity(opacity[opalevel]);

qdebug()windowopacity();

qdebug()windowopacity();

qdebug()現象是主窗體的有淡入的效果,即透明度有變化,但是子窗體沒有,opacity始終為1 。

log :

opalevel =  0  ui->widget opacity: 1 

opalevel =  0  ui->stackedwidget opacity: 1 

opalevel =  0  ui opacity  0.898039 

......

opalevel =  8  ui->widget opacity: 1 

opalevel =  8  ui->stackedwidget opacity: 1 

opalevel =  8  ui opacity  0.0980392 

void qwidget::setwindowopacity(qreal opacity)

qgraphicsopacityeffect

// in the constructor

opacityeffect = new qgraphicsopacityeffect;

ui->widget->setgraphicseffect(opacityeffect);

...// in changeopacity()

opacityeffect->setopacity(opacity[opalevel]);

Qt 非window子窗體的透明度設定

心血來潮,想利用qtimer 配合 setwindowopacity 方法來實現乙個窗體淡入的效果。粗糙的實驗 void widget on pushbutton clicked void widget changeopacity ui stackedwidget setwindowopacity ...

Qt 透明窗體實現

一.背景刷成黑色,前景色設為白色。方法一 paltette方式,經測試,該方法不會影響到其他控制項,推薦使用 qpalette bgpal palette bgpal.setcolor qpalette background,qcolor 0,0 0,255 bgpal.setcolor qpale...

QT 設定窗體透明

1.設定主窗體透明 設定窗體的透明的屬性為 setattribute qt wa translucentbackground,true 但 同時 需要設定 curflags qt framelesswindowhint 否則窗體會顯示為黑色 2.設定窗體透明度 this setwindowopaci...