Eve1yn0 2023-04-10 06:29 采纳率: 64.5%
浏览 74
已结题

关于QProgressBar进度条的问题

如下代码所示,想要一个进度条缓慢并且流畅增加的效果,但是运行以后发现进度条增长时有卡顿的情况,于是我增加了定时器的间隔时长,可仍然还是卡顿,各位有解决的办法吗?

        QTimer * testTimer = new QTimer(this);
        QTimer * timerHP = new QTimer(this);
        connect(testTimer,&QTimer::timeout,[=](){
            timerHP->start(100);
            testTimer->stop();
        });

        connect(timerHP,&QTimer::timeout,[=](){
            player->m_HP += 10;
            qDebug()<<player->m_HP;
            playGameUi->HP_Bar->setValue(player->m_HP);
            if(player->m_HP == 1000)
            {
                timerHP->stop();
            }
        });
        testTimer->start(2000);
  • 写回答

2条回答 默认 最新

  • mideum 2023-04-10 06:36
    关注

    如果你主线程有一些阻塞的操作那必然会卡顿,因为定时器肯定是等阻塞操作执行完毕后才会执行的

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    Eve1yn0 2023-04-10 06:39

    写了个update();函数就好了,很神奇

    回复
查看更多回答(1条)
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 4月17日
  • 已采纳回答 4月10日
  • 修改了问题 4月10日
  • 创建了问题 4月10日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部