写一个QT程序计数器:1秒记一次数,5秒停止
时间: 2024-02-01 09:13:10 浏览: 127
QT写的一个计算器
以下是一个简单的QT程序计数器,每1秒计数一次,每5秒停止计数:
```cpp
#include <QtWidgets/QApplication>
#include <QtWidgets/QWidget>
#include <QtWidgets/QLabel>
#include <QtCore/QTimer>
class CounterWidget : public QWidget {
public:
CounterWidget(QWidget* parent = nullptr) : QWidget(parent) {
countLabel = new QLabel("0", this);
countLabel->setAlignment(Qt::AlignCenter);
countLabel->setGeometry(0, 0, width(), height());
count = 0;
countTimer = new QTimer(this);
countTimer->setInterval(1000);
connect(countTimer, &QTimer::timeout, this, &CounterWidget::onCountTimerTimeout);
stopTimer = new QTimer(this);
stopTimer->setInterval(5000);
connect(stopTimer, &QTimer::timeout, this, &CounterWidget::onStopTimerTimeout);
stopTimer->start();
}
private:
QLabel* countLabel;
QTimer* countTimer;
QTimer* stopTimer;
int count;
void onCountTimerTimeout() {
count++;
countLabel->setText(QString::number(count));
}
void onStopTimerTimeout() {
countTimer->stop();
stopTimer->stop();
}
};
int main(int argc, char* argv[]) {
QApplication app(argc, argv);
CounterWidget counterWidget;
counterWidget.show();
return app.exec();
}
```
在这个程序中,我们创建了一个计数器窗口,其中包含一个用于显示计数的标签。我们使用两个定时器,一个用于每秒钟增加计数器,另一个用于在5秒后停止计数器。我们使用`QTimer`类来实现这两个定时器,使用`connect`函数来连接定时器的超时信号和我们自己定义的槽函数。在计数器超时槽函数中,我们增加计数器并更新标签。在停止计时器超时槽函数中,我们停止计数器定时器和停止定时器。最后,我们在`main`函数中创建一个应用程序对象,创建计数器窗口并显示它,然后启动应用程序事件循环。
阅读全文