0

我正在尝试使用 QLCDNumber 制作两个计时器。这些计时器将作为我的状态栏的一部分在 dll 中生成。我有两个 LCDNumber 显示器。lcdNumber1 将在指定时间(例如 12:00:00)开始。lcdNumber2 将从 0 开始(例如 00:00:00)。

如何为 lcdNumber2 创建一个计时器并让它开始计时?

如何将 lcdNumber2 的计时器添加到 lcdNumber1?或者我可以为 lcdNumber1 创建一个计时器以从指定时间开始计时?

有人可以帮忙吗?

QLCDNumber *lcdNumber1 = new QLCDNumber;
lcdNumber1->setNumDigits(8);
lcdNumber1->display(12:00:00);
statusBar->addWidget(lcdNumber1);

QLCDNumber *lcdNumber2 = new QLCDNumber;
lcdNumber2->setNumDigits(8);
lcdNumber2->display(00:00:00);
statusBar->addWidget(lcdNumber2);
4

1 回答 1

2

继承 QLCDNumber 添加变量时间来保存当前时间和另一个槽 tick()

QLCDNumber_my::tick(){
   time++;
   this->display(time);
}

进而

QLCDNumber_my *lcdNumber1 = new QLCDNumber_my;
lcdNumber1->setNumDigits(8);
lcdNumber1->display(12:00:00);
statusBar->addWidget(lcdNumber1);
QTimer *timer = new QTimer(this);
timer->start(1000);
connect(timer, SIGNAL(timeout()), lcdNumber1, SLOT(tick()));

QLCDNumber 是简单的显示小部件,它不能运行,要产生时间变化需要使用单独的计时器(QTimer)。

于 2013-09-20T10:22:00.913 回答