歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> 用Qt動畫框架設計飛入-消失特效【附源碼】

用Qt動畫框架設計飛入-消失特效【附源碼】

日期:2017/3/1 9:56:44   编辑:Linux編程

Qt動畫框架很強大,只要你想得到,它就有可能幫你實現。這一次我將抽取上一個演示程序的部分來進行介紹。這一部分我命名為“飛入 - 消失”特效,主要用在文字的顯示方面,從這點上說很像PowerPoint上面特效的一種。

下面是FlyInVanish類的部分定義:

class FlyInVanishEffect: public QObject// 飛入 - 消失特效類
{
Q_OBJECT
Q_PROPERTY( QPointF Pos READ Pos WRITE setPos )
public:
FlyInVanishEffect( QWidget* pWidget = 0 );
virtual ~FlyInVanishEffect( void );
void AddText( const QString& text );
void RenderPixmap( QPixmap& pixmap );
signals:
void Start( void );
void VanishStart( void );
public slots:
void StartEffect( void );
private slots:
void PauseFinished( void );
private:
void PreparePixmap( const QString& text );


DECLRARE_PROPERTY_WITH_GETTERS_AND_SETTERS( QPointF, Pos )
QStringList m_StringList;// 字符串列表


// 狀態機部分
QState m_InitialState, m_MiddleState, m_FinalState;
QStateMachine m_Machine;


// 動畫部分
QPropertyAnimation m_FlyInAnim, m_RiseAnim, m_VanishAnim;
QParallelAnimationGroup m_VanishAnimGrp;
QTimer m_PauseTimer;
bool m_HasFinished;


// 繪圖部分
QPointF m_SavedPos;
LinearGradient m_Gradient;
QPixmap m_TextPixmap;


// 父窗口指針
QWidget* m_pWidget;
};

Copyright © Linux教程網 All Rights Reserved