返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >利用QT设计秒表功能
  • 362
分享到

利用QT设计秒表功能

QT秒表 2022-11-13 14:11:31 362人浏览 泡泡鱼
摘要

本文实例为大家分享了Qt设计秒表功能的具体代码,供大家参考,具体内容如下 一、窗口界面的设置 可以使用属性栏digitCount来设计此时0的初始位置 二、代码的编写 1、确定时间

本文实例为大家分享了Qt设计秒表功能的具体代码,供大家参考,具体内容如下

一、窗口界面的设置

可以使用属性栏digitCount来设计此时0的初始位置

二、代码的编写

1、确定时间->每间隔一秒调用一个update函数(进行换算)或者直接调用QT里面的time类;
2、确定显示的方式;
3、每间隔一段时间调用显示来达到动态效果;
4、这里应该查看Qtime/Qlcd的help手册
5、在对定时器声明时要注意需要声明成指针,后面的槽函数发出信号者要求是指针类型;
6、利用基准时间与当前时间的差值来显示计时器;
7、设置暂停键的时候需要注意的是,可以给按键设置两个功能,分别是暂停和继续形成一个循环,但是需要注意是,当我们暂停后再继续这段时间也是计算在内的,当再次显示的时候,这时将会出现跳跃,这是因为我们显示时间的时候用的是当前时间与基准时间的差值来计算的。解决的办法是:
获取暂停前和暂停后的值,保存下来,当再次开始计算时减去这部分时间即可。
8、还有注意设置每个按键的可用性(Enabled)

代码如下:

#ifndef MaiNWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <Qtimer>
#include <Qtime>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private slots:
    void updateTimeAndDisplay();    //槽函数


    void on_btn_start_clicked();

    void on_btn_stop_clicked();

    void on_btn_pause_clicked();

    void on_btn_log_clicked();

private:
    Ui::MainWindow *ui;
    QTimer *qtimer;                 //声明一个定时器对象,声明成指针对象
    QTime baseTime;                 //声明一个时间对象
    QString showStr;                //直接声明
};

#endif // MAINWINDOW_H
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QString>

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    this->qtimer = new QTimer;   //实例构造
    connect(this->qtimer,SIGNAL(timeout()),this,SLOT(updateTimeAndDisplay()));
}

MainWindow::~MainWindow()
{
    delete ui;
}

//计算基准时间和当前时间的差值来显示秒表值(currentTime)
void MainWindow::updateTimeAndDisplay()
{
    QTime current = QTime::currentTime();
    int temp = this->baseTime.msecsTo(current);   //计算差值
    QTime showTime(0,0,0,0);
    showTime = showTime.addMSecs(temp);
    showStr = showTime.toString("hh:mm:ss:zzz");  //时间转换为字符串
    this->ui->lcdNumber->display(showStr);
}
void MainWindow::on_btn_start_clicked()
{
    this->baseTime = QTime::currentTime();
    this->qtimer->start(1);
    this->ui->btn_start->setEnabled(false);    //设置按键的可用性

}

void MainWindow::on_btn_stop_clicked()
{
    if(this->ui->btn_stop->text() == "停止"){
        this->ui->btn_stop->setText("清零");
        this->qtimer->stop();
        this->ui->btn_start->setEnabled(false);
        this->ui->btn_pause->setEnabled(false);

    }else
    {
        this->ui->lcdNumber->display("00:00:00:000");
        this->ui->textBrowser->clear();
        this->ui->btn_stop->setText("停止");
        this->ui->btn_start->setEnabled(true);
        this->ui->btn_pause->setEnabled(true);

    }
}

//获取暂停前后的值求差值
void MainWindow::on_btn_pause_clicked()
{
    static QTime pauseTime;
    if(this->ui->btn_pause->text() == "暂停"){
        pauseTime = QTime::currentTime();
        this->qtimer->stop();
        this->ui->btn_pause->setText("继续");
        this->ui->btn_start->setEnabled(false);
        this->ui->btn_stop->setEnabled(false);
    }else
    {
        QTime cut = QTime::currentTime();
        int t = pauseTime.msecsTo(cut);         //求差值
        this->baseTime = baseTime.addMSecs(t);  //把暂停时间再给baseTime
        this->qtimer->start(1);
        this->ui->btn_pause->setText("暂停");
        this->ui->btn_start->setEnabled(true);
        this->ui->btn_stop->setEnabled(true);

    }

}

void MainWindow::on_btn_log_clicked()
{
    this->ui->textBrowser->append(showStr); //这里如果使用settext()将会覆盖信息,不能追加显示
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: 利用QT设计秒表功能

本文链接: https://lsjlt.com/news/171787.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 利用QT设计秒表功能
    本文实例为大家分享了QT设计秒表功能的具体代码,供大家参考,具体内容如下 一、窗口界面的设置 可以使用属性栏digitCount来设计此时0的初始位置 二、代码的编写 1、确定时间...
    99+
    2022-11-13
    QT 秒表
  • QT设计秒表功能(跑步计时器)
    本文实例为大家分享了QT设计秒表功能的具体代码,供大家参考,具体内容如下 设计目标 1. 定时器开始 2.复位从0开始计时 3.记录--把记录的时间添加到QTextBrowser, ...
    99+
    2022-11-13
    QT 秒表
  • Qt编写秒表功能
    本文实例为大家分享了Qt编写秒表的具体实现代码,供大家参考,具体内容如下 文件widget.h #ifndef WIDGET_H #define WIDGET_H #include&...
    99+
    2022-11-13
    Qt 秒表
  • 基于实现Qt秒表设计
    基于Qt秒表设计 这个只是虚拟机下的Dialog中设计的秒表,大家感兴趣的可以根据自己手机的秒表界面来设计,亦或是有别的想法也可以在ui中添加函数,或者是在ui界面自己添加调整。本篇...
    99+
    2022-11-13
    Qt 秒表
  • Qt实现简易秒表设计
    Qt–简易秒表设计(QTimer,Qtime,TableWiget应用),供大家参考,具体内容如下 效果图 使用QTimer和QTime两个类 思路: 1.计时功能:​...
    99+
    2022-11-13
    Qt 秒表
  • Qt timerEvent实现简单秒表功能
    本文实例为大家分享了Qt timerEvent实现简单秒表的具体代码,供大家参考,具体内容如下 #ifndef WIDGET_H #define WIDGET_H //头文件 #in...
    99+
    2022-11-13
    Qt timerEvent 秒表
  • js如何实现秒表计时器功能
    这篇文章主要介绍了js如何实现秒表计时器功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。效果图: 下面贴代码:<!DOCT...
    99+
    2024-04-02
  • 用QT实现计时器功能
    本文实例为大家分享了QT实现计时器功能的具体代码,供大家参考,具体内容如下 首先新建工程,Ctrl+N->Application(Qt)->Qt Widgets Appl...
    99+
    2022-11-13
    QT 计时器
  • C++实现秒表功能
    本文实例为大家分享了C++实现秒表功能的具体代码,供大家参考,具体内容如下 抽象出CLOCK类来制作一个电子秒表,能够自动跳转 代码中有些陌生的库函数,顺便介绍一下: 1.syste...
    99+
    2024-04-02
  • java实现秒表功能
    利用javax.swing.Timer类设计并实现一个模拟秒表功能的应用程序。程序中显示不断递增的时间,同时包含允许用户启动和终止计时功能的代码,以及一个可将时间复位为0的按钮。 i...
    99+
    2024-04-02
  • Android实现秒表功能
    本文实例为大家分享了Android实现秒表功能的具体代码,供大家参考,具体内容如下 设计完成一个秒表,具备启停功能,正确使用工作线程完成界面刷新 activity_main.xml...
    99+
    2024-04-02
  • Android实现APP秒表功能
    本文实例为大家分享了Android实现APP秒表功能的具体代码,供大家参考,具体内容如下 这几天一直在看安卓,也正好赶上老师布置的作业,所以就做了一个秒表。自己参考了一下别人的图标,...
    99+
    2024-04-02
  • Qt利用ImageWatch实现图片查看功能
    使用Qt实现ImageWatch图片查看功能,图片放大可见RGB像素值。支持打开大图片,即打开一个几百MB甚至几GB的大图片。 1、什么是ImageWatch Visual Stud...
    99+
    2024-04-02
  • Android实现简易秒表功能
    本文实例为大家分享了Android实现秒表功能的具体代码,供大家参考,具体内容如下 今天为了给师弟们讲安卓,花了10分钟写了一个简易的秒表app,现贴出代码,供各位刚入门以及还未入...
    99+
    2024-04-02
  • QT实现简单计算器功能
    本文实例为大家分享了QT实现简单计算器功能的具体代码,供大家参考,具体内容如下 效果图: 新建工程,创建类MainWindow,基类是QMainWindow,声明变量和函数、槽 m...
    99+
    2024-04-02
  • Android怎么实现APP秒表功能
    要实现一个APP秒表功能,可以按照以下步骤进行操作:1. 创建一个新的Android项目。在Android Studio中,选择“F...
    99+
    2023-08-17
    Android
  • 如何利用PHP开发商城的秒杀功能
    随着电子商务的发展,商城的竞争日益激烈,为了吸引用户,商城普遍采用了秒杀活动的形式。然而,秒杀活动需要具备高并发、高可用等特性,这对开发者的技术要求很高。在本篇文章中,我们将介绍如何利用PHP开发商城的秒杀功能。一、秒杀功能的基本原理在进行...
    99+
    2023-05-22
    PHP 商城 秒杀功能
  • Qt怎么利用ImageWatch实现图片查看功能
    本篇内容介绍了“Qt怎么利用ImageWatch实现图片查看功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!什么是ImageWatchVi...
    99+
    2023-06-30
  • Qt利用QDrag实现拖拽拼图功能详解
    目录一、项目介绍二、项目基本配置三、UI界面设置四、主程序实现4.1 main.cpp4.1 mainwindow.h头文件4.2 mainwindow.cpp源文件4.3 Piec...
    99+
    2024-04-02
  • Linux用脚本实现“时分秒“倒计时功能
    1.怎样实现“时分秒“倒计时 在linux下,脚本的完成相对于C语言来说稍微随意一点,可以按照字的想法写,只要有逻辑就可以了。 示例: 注意: clean的功能 这个命令将会刷新屏幕,本质上只是让终端显示页向后翻...
    99+
    2022-06-04
    linux 时分秒倒计时 linux 倒计时
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作