qtcreater实现计时器
时间: 2023-12-04 13:01:44 浏览: 107
以下是使用Qt Creator实现计时器的基本步骤:
1. 创建一个新的Qt Widgets应用程序项目。
2. 打开主窗口的ui文件(.ui),在设计视图中添加一个标签(QLabel)和两个按钮(QPushButton),分别命名为“lblTime”、“btnStart”和“btnStop”。
3. 打开主窗口的头文件(.h),添加以下代码:
``` c++
#include <QMainWindow>
#include <QTimer>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = nullptr);
~MainWindow();
private slots:
void on_btnStart_clicked();
void on_btnStop_clicked();
void on_timer_timeout();
private:
Ui::MainWindow *ui;
QTimer *timer;
int timeCount;
};
```
在这个头文件中,我们包含了QMainWindow和QTimer类,并声明了三个私有槽函数,一个指针变量和一个整型变量。
4. 打开主窗口的源文件(.cpp),添加以下代码:
``` c++
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
timeCount = 0;
timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(on_timer_timeout()));
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_btnStart_clicked()
{
timer->start(1000); // 1秒钟触发一次
}
void MainWindow::on_btnStop_clicked()
{
timer->stop();
timeCount = 0;
ui->lblTime->setText(QString("00:00:00"));
}
void MainWindow::on_timer_timeout()
{
timeCount++;
QTime time = QTime::fromString(QString("00:00:00"), "hh:mm:ss");
time = time.addSecs(timeCount);
ui->lblTime->setText(time.toString("hh:mm:ss"));
}
```
在这个源文件中,我们实现了三个槽函数,分别响应“开始”、“停止”按钮的点击事件和计时器的超时事件。在构造函数中,我们初始化了计时器和时间计数器。在“开始”按钮的槽函数中,我们启动计时器,并设置它每隔1秒钟触发一次。在“停止”按钮的槽函数中,我们停止计时器、清零时间计数器,并将标签文本设置为“00:00:00”。在计时器的超时事件槽函数中,我们将时间计数器加1,根据时间计数器计算当前的时间,并将文本设置为格式化的“hh:mm:ss”字符串。
5. 编译并运行程序,可以看到一个简单的计时器界面。点击“开始”按钮可以开始计时,点击“停止”按钮可以停止计时并将时间清零。
这就是使用Qt Creator实现计时器的基本步骤。如果需要实现更复杂的计时器功能,可以根据需要添加其他控件和逻辑。
阅读全文