QT实现简单计时器

最近学习QT相关知识,利用QT设计相关界面,然后想在当中加入一个小功能,那就是简单的计时器。但是在查找资料的过程发现并没有简洁易懂的方法,所以在我综合各种资料学习过后,用比较简单的方法就实现了简单的计时器功能,只有开始,暂停,重置这几个功能,当然,毕竟是简单的计时器嘛,如果需要加其他功能可以自行添加。下面开始我们的制作,,,,,

第一步:创建好自己的工程

创建工程等工作这里就不多说了,自己实现,,,,,

第二步:在ui界面进行界面布局

自己对界面进行布局,加入几个button,以及一个label,布局看个人喜好,我的布局大致如下

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Y-u6ZObODk2,size_20,color_FFFFFF,t_70,g_se,x_16

第三步:把三个按键转到槽

按键转到槽会在你的.cpp中生成函数,例如:void Formds::on_pushButton_clicked()。

生成按钮槽函数时记得做好标注,以免等下忘记哪个是哪个。

OK,此时我们就可以进行程序的编写了

第四步:程序编写

因为是计时器,这就涉及了QT的定时器方面知识,我们用QTimer类。

1.在.h文件中加入如下代码

#include <QTimer>
#include <QTime>
 
QTimer *timer;    
QTime   time;

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Y-u6ZObODk2,size_20,color_FFFFFF,t_70,g_se,x_16

 2.在.cpp文件中加入下面代码,如图所示

#include <QTimer>
#include <QTime> 

time.setHMS(0,0,0,0);//设置初始值   
timer = new QTimer(this);//创建一个定时器   
connect(timer, SIGNAL(timeout()), this, SLOT(update()));//手动连接槽函数
这里我们需要自己写一个槽函数
void Formds::update()
{    
        static quint32 time_out=0;    
        time_out++;    
        time=time.addSecs(1);  
        ui->label->setText(time.toString("hh:mm:ss"));
}

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Y-u6ZObODk2,size_20,color_FFFFFF,t_70,g_se,x_16

 在按键的槽函数里面加入以下代码,如图所示

timer->start(1000);

timer->stop();

timer->stop();     
time.setHMS(0,0,0,0);    
ui->label->setText(time.toString("hh:mm:ss"));

 

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Y-u6ZObODk2,size_20,color_FFFFFF,t_70,g_se,x_16

 这样,简单的计时器就做好了,,,,,,

第五步:运行

运行效果如下

8d223dfa4aec4db791204e6a970b5756.gif

我也是刚学习的小白 ,如果哪里有讲错的希望大家指正,欢迎大家留言评论,,,,

 

 

 

  • 13
    点赞
  • 94
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 13
    评论
以下是使用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实现计时器的基本步骤。如果需要实现更复杂的计时器功能,可以根据需要添加其他控件和逻辑。
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

麦当&

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值