我正在尝试创建一个数字时钟。但是,我的目的不是获取currentTime()。相反,我正在定义自己的时间并从此开始增加时间。
但是,在我的代码中,我可以调用tickSimulation(),但时钟计时器不会开始滴答。它只是在11:00:00停留。声明addSecs(1000)是否正确?
请帮忙。谢谢!
StatusBar::StatusBar()
{
createButtons();
time = new QTime(11, 0, 0);
};
void StatusBar::createButtons()
{
...
lcdSimulation = new QLCDNumber;
lcdSimulation->setNumDigits(8);
simulationTimer = new QTimer;
simulationTimer->start(1000);
QObject::connect(simulationTimer, SIGNAL(timeout()), this, SLOT(tickSimulation()));
addWidget(lcdSimulation);
...
}
void StatusBar::tickSimulation()
{
QString text = time->toString(Qt::TextDate);
if((time->second() % 2) == 0)
text[2] = ' ';
lcdSimulation->display(text);
time->addSecs(1000);
};
答案 0 :(得分:3)
QTime的addSecs函数在您调用时返回新的QTime对象。所以你需要使用返回的对象来显示正确的时间
QTime n(11, 0, 0);
QTime t;
t = n.addSecs(1000);
//use t to show correct time
有关详细信息,请参阅此处QTime doc。