当前位置:   article > 正文

C++实现弹簧效果来解决qml内部弹簧效果卡顿现象_qml 弹簧 布局

qml 弹簧 布局


#define AnimationDealEmit(name, from, to, ms, isFirst) \

    do{    \
    if(!isFirst) {    \
    m_##name += (to - from) / (9 * ms / 25);    \
    } else {    \
    m_##name = from;    \
    }    \
    if(((to - from) > 0) ? m_##name < to : m_##name > to) {    \
    emit name##Changed(m_##name);    \
    name##Timer->start(ms / (9 * ms / 25));    \
    } else {    \
    m_##name = to;    \
    emit name##Changed(m_##name);    \
    name##Timer->stop();    \
    }    \

    }while(0)


 if(m_rpm != data.rpm){
        m_rpm = data.rpm;
        if(m_rpm>300)
       {     m_selfcheck=false;
            emit selfcheckChanged(m_selfcheck);}
        if(m_active==false)
            m_rpm=0;
        m_rpmAngleFrom = m_rpmAngle;
        if(m_rpm >= 8000)
            m_rpmAngleTo = 108.5;
        else
            m_rpmAngleTo = -179.0+287.5/8000.0*m_rpm;
        if(m_active){AnimationDealEmit(rpmAngle, m_rpmAngleFrom, m_rpmAngleTo, 500, true);}
        emit rpmChanged(m_rpm);
    }


void CarStatus::rpmAngletimeout(){
    AnimationDealEmit(rpmAngle,m_rpmAngleFrom,m_rpmAngleTo,300,false);
}


因为如果定义float real类型变量,qml内部弹簧机智将变量分的特别细,0---1000,可能就分成100万份处理,太耗资源,导致卡顿现象

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/334765
推荐阅读
相关标签
  

闽ICP备14008679号