|
大家新年好,
元旦在家没事做,就用QT写点界面玩玩。
本来准备做一个类似于手机截屏一瞬间的效果的,全屏变白,然后慢慢变透明,最后回复之前的状态。
我是这样做的,触发后,开一个timer,然后把一个Label的尺寸设置为全屏,白色。然后在timer里面逐渐改变透明度。
类似代码如下:
void ringlight::TimerGrabScreenISR()
{
if(maskOpacity > 0)
{
maskOpacity --;
ui->label_Mask->setStyleSheet("background-color: rgba(255, 255, 255, " + QString::number(maskOpacity , 10) + ")");
}
else
this->close();
}
实际的效果出来后,发现变透明的速度非常慢,蛮到这个效果白想了。。。。。
之后我吧setStyleSheet 这句话屏蔽掉,或者改为移动效果都很快。
请问大家有没有碰到过这样的事情,难道setStyleSheet的效率很低,或者是与透明相关的效率很低?
|
|