写一个QT程序:点击按纽开始计时,2分钟次数加一,10分钟后停止
时间: 2023-12-19 10:05:04 浏览: 27
以下是一个简单的QT程序,实现了点击按钮开始计时,每隔2分钟次数加一,10分钟后自动停止计时的功能:
```cpp
#include <QtWidgets>
class TimerWidget : public QWidget
{
Q_OBJECT
public:
explicit TimerWidget(QWidget *parent = 0) : QWidget(parent)
{
// 创建UI界面
QVBoxLayout *layout = new QVBoxLayout(this);
QPushButton *startButton = new QPushButton("开始计时", this);
QLabel *countLabel = new QLabel("次数: 0", this);
layout->addWidget(startButton);
layout->addWidget(countLabel);
// 连接信号槽
connect(startButton, &QPushButton::clicked, this, &TimerWidget::startTimer);
connect(&timer, &QTimer::timeout, this, &TimerWidget::countTimer);
// 设置计时器
timer.setInterval(120000); // 2分钟
}
private:
int count = 0;
QTimer timer;
private slots:
void startTimer()
{
// 启动计时器
timer.start();
}
void countTimer()
{
// 次数加一
count++;
// 更新UI界面
QLabel *countLabel = findChild<QLabel*>("countLabel");
if (countLabel)
{
countLabel->setText(QString("次数: %1").arg(count));
}
// 如果已经计时了10分钟,则停止计时器
if (timer.remainingTime() <= 0)
{
timer.stop();
QMessageBox::information(this, "计时结束", "已经计时了10分钟,计时结束。");
}
}
};
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
TimerWidget widget;
widget.show();
return app.exec();
}
#include "main.moc"
```
在这个程序中,我们创建了一个继承自QWidget的TimerWidget类,其中包含了一个计数器和一个QTimer对象。在UI界面中,我们创建了一个QPushButton按钮和一个QLabel标签,用来显示次数。当用户点击按钮时,我们启动计时器,并在每个2分钟时更新次数。如果已经计时了10分钟,则停止计时器,并弹出一个提示框告知用户计时结束。