Qt QLCDNumber QTimer数字时钟滴答

时间:2013-10-22 01:10:48

标签: c++ qt timer

我正在尝试创建一个数字时钟。但是,我的目的不是获取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);
};

1 个答案:

答案 0 :(得分:3)

QTime的addSecs函数在您调用时返回新的QTime对象。所以你需要使用返回的对象来显示正确的时间

QTime n(11, 0, 0);
QTime t;
t = n.addSecs(1000); 
//use t to show correct time

有关详细信息,请参阅此处QTime doc。

相关问题