Qt的動畫效果還是不錯的,一般不會出現什麼問題。但是特殊情況還是有問題的:
如果在動畫執行完立即執行耗時操作,就會出現這個問題。
看問題:
代碼:
connect(m_showAnimation, SIGNAL(finished()), this, SLOT(onShowAnimationEnd()));
void XXXXXXXXXXXXXXXXXXX::onShowAnimationEnd() {
m_cameraPropertyWindow->openCamera();//優化攝像頭打開速度
}
在動畫執行完,執行了一個比較耗時的操作,打開攝像頭。按照理論來說,應該是執行完動畫效果,再執行打開攝像頭,再執行别的什麼操作。但是實際效果是,動畫還沒有執行完就開始打開攝像頭。
connect(m_showAnimation, SIGNAL(valueChanged(QVariant)), this, SLOT(onShowValueChangeed(QVariant)));
void CbCameraView::onShowValueChangeed(QVariant var) {
qDebug() << "onShowValueChangeed:" <<QDateTime::currentDateTime();
}
void XXXXXXXXXXXXXXXXXXX::onShowAnimationEnd() {
QTimer::singleShot(3, [=]() {
m_cameraPropertyWindow->openCamera();//優化攝像頭打開速度
});}