初識Qt簡單動畫

Qt提供了類QPropertyAnimation來實現圖片的一些簡單的動畫操做效果。html

一、新建一個Qt空項目,同時添加資源文件,並在資源文件中添加圖片路徑。以後在main.cpp函數中添加如下代碼linux

 1 #include<QApplication>
 2 #include<QLabel>
 3 #include<QPixmap>
 4 #include<QPropertyAnimation>
 5 
 6 int main(int argc, char *argv[])
 7 {
 8     QApplication app(argc, argv);
 9     QWidget *w= new QWidget;//定義窗口部件
10     w->resize(200, 200);
11 
12     QPixmap pixmap = QPixmap("linux.png").scaled(30, 40);//定義圖片的寬高比例
13     QLabel *label = new QLabel(w);//將以前設置的窗口定義爲標籤
14     label->setPixmap(pixmap);//標籤中放置圖片
15 
16     QPropertyAnimation *anim=new QPropertyAnimation(label,"pos");//pos爲label的位置屬性
17     anim->setDuration(5000);//移動時間爲5000ms
18     anim->setStartValue(QPoint(0, 160));//起始座標,該座標對應圖片左上角
19     anim->setEndValue(QPoint(170, 0));//終止座標,該座標對應圖片左上角
20     anim->setEasingCurve(QEasingCurve::OutBounce);//setEasingCurve ()函數選擇運行軌跡曲線。該行刪除後,運動軌跡爲直線,無特效
21     anim->start();//開始移動
22 
23     w->show();
24     return app.exec();
25 }

二、運行程序以後,顯示以下app

三、擴展:多個動畫效果的實現函數

 當涉及到兩幅圖片甚者多幅圖片的動畫效果時,須要使用動畫組類QSequentialAnimationGroup或QParallelAnimationGroup。前者實現的是串行動畫效果,即多個動畫一個接一個的發生,後者實現動畫並行效果,即多個動畫同時發生。動畫

1 QSequentialAnimationGroup group;//串行動畫
2 //QParallelAnimationGroup group;//並行動畫
3 group.addAnimation(anim1);//動畫1
4 group.addAnimation(anim2);//動畫2
5 group.start();

文章參考來源:http://www.hnmade.com/bbs/thread-12332-1-1.html,感謝分享!spa

相關文章
相關標籤/搜索