Qt動畫效果展示

2021-06-09 06:17:19 字數 1520 閱讀 9329

該程式使用應用程式單視窗,主視窗繼承於qmainwindow;主視窗有5個qtoolbutton部件(視窗底部的四個以及視窗**的乙個),單擊視窗底部的qtoolbutton部件可以使視窗**的那個qtoolbutton有動畫效果;具體效果請自己嘗試。

1、生成部件以及定位部件

在主視窗的建構函式中生成部件物件,然後在視窗大小改變事件中定位部件位置,如下**所示:

//

生成toolbutton

m_pbtn1 = new qtoolbutton(this);

//視窗大小改變事件

void mainwindow::resizeevent(qresizeevent *event)

2、繪製視窗背景

該視窗背景是線性漸變的,即視窗左上是白色的,一直漸變到視窗右下的黑色,因此使用qt的線性漸變畫刷;qt中有三種漸變效果,分別是:線性漸變,圓形漸變和錐形漸變。

//

重繪事件

void mainwindow::paintevent(qpaintevent *event)

3、qtoolbutton顯示影象

主要使用setmask函式來生成掩碼位圖,從而過濾掉不在影象之中的部分。

pbtn->setstylesheet("

qtoolbutton

");pbtn->resize(w_widget,h_widget);

pbtn->seticonsize(qsize(w_widget,h_widget));

qpixmap objpixmap(str);

pbtn->seticon(qicon(objpixmap));

pbtn->setmask(objpixmap.mask());

4、設定視窗**的那個qtoolbutton動畫

當然主要使用qpropertyanimation物件了,看下面的幾行**,很簡單;主要設定持續時間,然後設定qtoolbutton在開始處和結束處的幾何資訊即可,最後設定動畫效果即可;qt內建了很多的動畫效果供我們選擇。

//

槽函式--動畫設定

void mainwindow::setanimation(int ncurvetype)

//設定新的動畫

m_pproanima->setduration(1000);

m_pproanima->setstartvalue(qrect(0, 0, w_widget, h_widget));

m_pproanima->setendvalue(qrect(width()-w_widget,height()-h_widget*2,w_widget,h_widget));

m_pproanima->seteasingcurve(qeasingcurve::type(ncurvetype));

m_pproanima->start();

}

Qt之介面出現 消失動畫效果

在學習qt的這2 3個月裡,對qt越發感興趣,從剛開始的盲目 無所適從到現在的學習 研究 熟練 掌握的過程中,我學到了很多東西,也學會了如何通過自學讓自己更加成熟 強大起來,如何更有效地提高自己學習 工作效率。關於qt介面的出現消失效果,我簡單介紹兩種方法。1 1 介面出現 將下面這段 放在介面的建...

Qt之介面出現 消失動畫效果

在學習qt的這2 3個月裡,對qt越發感興趣,從剛開始的盲目 無所適從到現在的學習 研究 熟練 掌握的過程中,我學到了很多東西,也學會了如何通過自學讓自己更加成熟 強大起來,如何更有效地提高自己學習 工作效率。關於qt介面的出現消失效果,我簡單介紹兩種方法。1 1 介面出現 將下面這段 放在介面的建...

Qt 實現按鈕透明的動畫效果

qt裡實現動畫一般是用qpropertyanimation,也支援有透明的動畫效果,即屬性為opacity。該屬性是qwindow類及其派生類才有的,qwidget沒有,qwidget及其派生類就用不了,故只能使用其他方法來實現了 我們這裡通過qgraphicsopacityeffect來設定透明度...