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();//优化摄像头打开速度
});}