Qt 控件渐变隐藏消失
前言
在 Qt 開發(fā)中,經(jīng)常會(huì)設(shè)置某些控件透明的透明度,比如設(shè)置QLabel字體漸變隱藏,設(shè)置某個(gè)按鈕漸變消失等等,這在消息提示框中會(huì)常用到,顯示一定時(shí)間后讓控件有一個(gè)動(dòng)畫逐漸消失的過程,其實(shí)原理很簡(jiǎn)單,就是設(shè)置控件的透明度,直到透明度為0后再將控件設(shè)置為隱藏即可。動(dòng)畫的過程可以用兩種方式來實(shí)現(xiàn),第一是通過定時(shí)器,不斷的設(shè)置控件的透明度,第二是通過QPropertyAnimation來實(shí)現(xiàn),當(dāng)然,后者會(huì)更簡(jiǎn)單。那么該如何設(shè)置控件透明度呢,這里需要用到QGraphicsOpacityEffect類。
正文
首先來看看效果圖
當(dāng)然,還可以將 QLabel 換成其他控件,比如 QPushButton等等。
來看源碼:
代碼很簡(jiǎn)單,就是QGraphicsOpacityEffect + QPropertyAnimation來實(shí)現(xiàn)想要的效果。
以上是設(shè)置控件的透明度,如果想要設(shè)置窗口透明度,需要用到 QWidget 的函數(shù)setWindowOpacity來實(shí)現(xiàn),原理和上面一樣,也可以通過QPropertyAnimation來實(shí)現(xiàn)動(dòng)畫效果。這里就不再講述。
做了一個(gè)簡(jiǎn)單的 demo,在這里下載
總結(jié)
以上是生活随笔為你收集整理的Qt 控件渐变隐藏消失的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: QGraphicsItem获取不到鼠标事
- 下一篇: QML 实现图片帧渐隐渐显轮播