gpt4 book ai didi

c++ - Qt QLCDNumber 定时器

转载 作者:行者123 更新时间:2023-11-30 01:56:47 27 4
gpt4 key购买 nike

我使用 QLCDNumber 制作了一个计时器,显示在我的状态栏上。我试图连接到我的插槽。但是,似乎从未调用过该插槽。谁能告诉我哪里出了问题?

谢谢。

顺便说一句,如果我使用这种方法,计时器会根据时钟时间的滴答声进行计数吗? (即当秒数达到 59 时,将重置为 0,分钟将变为 1。)

我的.h:

class StatusBar : public QStatusBar, QLCDNumber
{
Q_OBJECT
public:
StatusBar()
{
m_simulation = 0;
createButtons();
};
~StatusBar() { };

public slots:
void countUp();

private:
QLCDNumber *lcdSimulation;
int m_simulation;
QTimer *simulationTimer;
};

我的.cpp:

void StatusBar::createButtons()
{
...

lcdSimulation = new QLCDNumber;
lcdSimulation->setNumDigits(8);
lcdSimulation->display("12:00:00");
simulationTimer = new QTimer;
simulationTimer->start(5000);
QObject::connect(simulationTimer, SIGNAL(timeout()), lcdSimulation, SLOT(countUp()));
addWidget(lcdSimulation);

...
}

void StatusBar::countUp()
{
m_simulation++;
lcdSimulation->display(m_simulation);
}

最佳答案

问题似乎在于信号的目标对象不正确。

QObject::connect(simulationTimer, SIGNAL(timeout()), lcdSimulation, SLOT(countUp()));

正确

QObject::connect(simulationTimer, SIGNAL(timeout()), this, SLOT(countUp()));

因为您的 countUp() 是在 StatusBar 类中定义的,而不是在 QLCDNumber 中定义的。

关于c++ - Qt QLCDNumber 定时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19488257/

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