gpt4 book ai didi

c++ - QTime QTimer timeout() driven Stopwatch CPU占用率高

转载 作者:行者123 更新时间:2023-11-28 03:53:23 27 4
gpt4 key购买 nike

在我的游戏中,我需要一个秒表来测量和显示耗时。

为此,我制作了一个简单的小部件:

    ZuulStopwatchWidget::ZuulStopwatchWidget(QWidget *parent) :
QWidget(parent)
{
num = new QLCDNumber(this); // create the display
num->setDigitCount(9);

time = new QTime();
time->setHMS(0,0,0,0); // set the time

timer = new QTimer(this);

connect(timer, SIGNAL(timeout()), this, SLOT(showTime()));
i=0;
QString text = time->toString("hh:mm:ss");
num->display(text);
//num->setStyleSheet("* { background-color:rgb(199,147,88);color:rgb(255,255,255); padding: 7px}}");
num->setSegmentStyle(QLCDNumber::Flat); //filled flat outline
//setStyleSheet("* { background-color:rgb(236,219,187)}}");

layout = new QVBoxLayout(this);
layout->addWidget(num);
setMinimumHeight(70);
}

ZuulStopwatchWidget::~ZuulStopwatchWidget()
{
// No need to delete any object that has a parent which is properly deleted.

}
void ZuulStopwatchWidget::resetTime()
{
time->setHMS(0,0,0);
QString text = time->toString("hh:mm:ss");
num->display(text);
i=0;
stopTime();
}

void ZuulStopwatchWidget::startTime()
{
//flag=0;
timer->start(1);
}

void ZuulStopwatchWidget::stopTime()
{
timer->stop();
}


void ZuulStopwatchWidget::showTime()
{
QTime newtime;
//if(flag==1)
//i=i-1;
i=i+1;
newtime=time->addMSecs(i);
QString text = newtime.toString("mm:ss:zzz");
num->display(text);
}

但是当我运行我的游戏时,2.5Ghz i5 上的 CPU 使用率约为 13%。我知道这没有问题,但对于一个愚蠢的时钟来说肯定是荒谬的。

我这样做是完全错误的还是这是常见的做法?!

非常感谢。

最佳答案

Start(1) 设置定时器每毫秒触发

然后你想格式化一个字符串并将其打印在屏幕上,比屏幕更新的速度快 16 倍

关于c++ - QTime QTimer timeout() driven Stopwatch CPU占用率高,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4600068/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com