c++ - 检查 QVariantAnimation 是否完成?

标签 c++ qt animation signals slot

我有一个派生自 QVariantAnimation 的类,我必须在动画结束后运行一段代码。

我试过 finished() 信号,但是没有发射:

connect(this, SIGNAL(finished()), this, SLOT(setEndVariables()));

有没有其他意见,看动画是不是停止了,还是信号的用法不对?

编辑:用代码

LiConfigurableFrameAnimation::LiConfigurableFrameAnimation(QString compId, int dur, LiConfigurableFrame *f)
{
    if(dur>0)
        this->setDuration(dur);
    frame=f;
    widget=frame->getComponent(compId);
    isRectMode=false;
    isImageMode=false;

    connect(this, SIGNAL(finished()), this, SLOT(setEndVariables()));
}

头文件:

class LiConfigurableFrameAnimation: public QVariantAnimation
{

    private slots:
        void setEndVariables();

    };

最佳答案

我解决了这个问题:

我重载函数 updateCurrentTime 并检查当前时间是否等于持续时间。

updateCurrentTime(int curr)
{

    if(curr >= this->duration())....
... 

关于c++ - 检查 QVariantAnimation 是否完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18383020/

相关文章:

jquery - 带有 JQuery addClass 的 CSS 动画。使用 true 或 false 只运行一次

ios - 当点击手势执行时,带有 uitextfield 的逐字母动画同时执行

c++ - OpenAL - 在服务器上播放托管的 .wav

c++ - 同一模式多次出现的 Horspool 算法

C++ 替换配置文件中的值

python - PyQt如何从布局中移除布局

html - SVG > 从中间开始动画宽度

c++ - FFmpeg 阻塞管道直到完成?

c++ - 从 std::thread::id 结构中检索 Windows 线程标识符

c++ - 访问子函数,同时使用父类