(tbd)
【目的】
- 製作簡單的 2D 動畫效果。
【步驟】
- 先從簡單的開始,由 Qt 官方文件入手。
首先先在 UI 新增一個 Push Button ,當點選它就會由左上(0,0)至右下(250,250)移動。
[參考] http://doc.qt.nokia.com/4.7/qpropertyanimation.html - geometry 效果
void MainWindow::on_pushButton_clicked() { QPropertyAnimation *animation = new QPropertyAnimation(ui->pushButton, "geometry"); animation->setDuration(10000); animation->setStartValue(QRect(0, 0, 100, 30)); animation->setEndValue(QRect(250, 250, 100, 30)); animation->start(); }
- pos 效果
void MainWindow::on_pushButton_clicked() { QPropertyAnimation *animation = new QPropertyAnimation(ui->pushButton, "pos"); animation->setDuration(10000); animation->setStartValue(QPoint(0, 0)); animation->setEndValue(QPoint(250, 250)); animation->start(); }
- opacity 效果
- rotation 效果
- 要造成動化效果,需要幾個Widget配合
- QStateMachine/QState
- QGraphicsProxyWidget
- setCacheMode
- QPropertyAnimation
- setDuration
- setStartValue
- setEndValue
- QParallelAnimationGroup
- addAnimation
- QSequentialAnimationGroup
【參考】
- animation/states/main.cpp
http://doc.trolltech.com/4.7/animation-states-main-cpp.html - Animation Framework: A Step Towards Modern UIs
http://www.slideshare.net/qtbynokia/animation-framework-a-step-towards-modern-uis - QT的Graphics View柜架(1/3)
http://www.kuqin.com/cpluspluslib/20071113/2310.html - Box2D:给你的Qt程序加上物理引擎
http://www.cuteqt.com/blog/?p=1425