QT实现秒表项目

本文实例为大家分享了QT实现秒表项目的具体代码,供大家参考,具体内容如下

源代码目录

mainwindow.ui窗口设计

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include<QTime>
#include<QTimer>

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 *ptimer;
    QTime baseTime;
    QString showStr;

};

#endif // MAINWINDOW_H

mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include<QString>

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    this->ptimer=new QTimer;
    connect(this->ptimer,SIGNAL(timeout()),this,SLOT(updateTimeAndDisplay()));

}

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

void MainWindow::updateTimeAndDisplay(){
    QTime current=QTime::currentTime();
    int t=this->baseTime.msecsTo(current);
    QTime showTime(0,0,0,0);
    showTime=showTime.addMSecs(t);
    showStr=showTime.toString("hh:mm:ss:zzz");
    this->ui->lcdNumber->display(showStr);
}

void MainWindow::on_btn_start_clicked()
{
    this->baseTime=QTime::currentTime();
    this->ptimer->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->ptimer->stop();
    }else{
        this->ui->lcdNumber->display("00:00:00:000");
        this->ui->textBrowser->clear();
        this->ui->btn_stop->setText("停止");
        this->ui->btn_start->setEnabled(true);
    }

}

void MainWindow::on_btn_pause_clicked()
{
    static QTime pauseTime;
    if(this->ui->btn_pause->text()=="暂停"){
        pauseTime=QTime::currentTime();
        this->ptimer->stop();
        this->ui->btn_pause->setText("继续");
    }else{
        QTime cut=QTime::currentTime();
        int t=pauseTime.msecsTo(cut);
        this->baseTime=this->baseTime.addMSecs(t);
        this->ptimer->start(1);
        this->ui->btn_pause->setText("暂停");

    }

}

void MainWindow::on_btn_log_clicked()
{
    this->ui->textBrowser->append(this->showStr);
}

main.cpp

#include "mainwindow.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();

    return a.exec();
}

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

(0)

相关推荐

  • 基于实现Qt秒表设计

    基于Qt秒表设计 这个只是虚拟机下的Dialog中设计的秒表,大家感兴趣的可以根据自己手机的秒表界面来设计,亦或是有别的想法也可以在ui中添加函数,或者是在ui界面自己添加调整.本篇将给除了给出Qt秒表设计例子之外还会为大家提供一些常用函数. 一.Qt绘图系统简介 Qt的绘图系统允许使用相同的API在屏幕和其它打印设备上进行绘制.整个绘图系统基于 QPainter,QPainterDevice和QPaintEngine三个类. QPainter用来执行绘制的操作: QPaintDevice则允许

  • QT实现秒表项目

    本文实例为大家分享了QT实现秒表项目的具体代码,供大家参考,具体内容如下 源代码目录 mainwindow.ui窗口设计 mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include<QTime> #include<QTimer> namespace Ui { class MainWindow; } class MainWindow : public QMai

  • QT设计秒表功能(跑步计时器)

    本文实例为大家分享了QT设计秒表功能的具体代码,供大家参考,具体内容如下 设计目标 1. 定时器开始 2.复位从0开始计时 3.记录--把记录的时间添加到QTextBrowser, append(时间) 4. QTime t(0,0,0)   t = t.addMsec( number )  t.toString (“hh:mm:ss:zzz”) 定时器(QTimer)的使用 定时器---定时发送信号timeoutQTimer 定时器类 1.创建定时器类对象QTimer mtimer; 2.把定

  • Qt编写秒表功能

    本文实例为大家分享了Qt编写秒表的具体实现代码,供大家参考,具体内容如下 文件widget.h #ifndef WIDGET_H #define WIDGET_H #include<QTimer> #include <QWidget> #include<QString> #include<QTime> namespace Ui { class Widget; }   class Widget : public QWidget {     Q_OBJECT  

  • 利用QT设计秒表功能

    本文实例为大家分享了QT设计秒表功能的具体代码,供大家参考,具体内容如下 一.窗口界面的设置 可以使用属性栏digitCount来设计此时0的初始位置 二.代码的编写 1.确定时间->每间隔一秒调用一个update函数(进行换算)或者直接调用QT里面的time类:2.确定显示的方式:3.每间隔一段时间调用显示来达到动态效果:4.这里应该查看Qtime/Qlcd的help手册5.在对定时器声明时要注意需要声明成指针,后面的槽函数发出信号者要求是指针类型:6.利用基准时间与当前时间的差值来显示计时器

  • Qt实现简易秒表设计

    Qt–简易秒表设计(QTimer,Qtime,TableWiget应用),供大家参考,具体内容如下 效果图 使用QTimer和QTime两个类 思路: 1.计时功能:​ 利用QTimer中的定时器中断信号,设置每10毫秒触发一次timeout信号,在对应槽函数中对LCD number中显示的时间进行更新,即LCD屏中每十毫秒更新一次:对于时间的累加显示(QTimer是定时器)需要Qtime,在每一次timeout信号出发时,使Qtime类的time累加上10ms. 部分关键代码如下(代码并非连续

  • Visual Studio 2019配置qt开发环境的搭建过程

    宇宙第一IDE Visual Studio 配置 Qt 开发环境

  • Qt Creator使用教程的简单说明

    目录 Qt Creator 欢迎界面 Qt Creator 新建项目 1)左边栏 2) 代码编辑器 Qt Creator 编辑 UI Qt Creator 生成和运行程序 Qt 在很长的一段时间内都没有自己的开发环境,直到 Qt 被诺基亚收购,才大力推自己的集成开发环境,就是 Qt Creator,这为 Qt 的开发带来了很大的方便. 在 Qt Creator 诞生之前, 程序员可以通过 qmake 命令行编译,或者像前面几节一样手动输入 g++ 命令编译,在 Linux 平台还有 KDevel

  • Qt使用windeployqt工具实现程序打包发布方法

    目录 1. Qt Widgets Application 2.Qt Quick Application Qt 官方开发环境使用的动态链接库方式,在发布生成的exe程序时,需要复制一大堆 dll,如果自己去复制dll,很可能丢三落四,导致exe在别的电脑里无法正常运行.因此 Qt 官方开发环境里自带了一个工具:windeployqt.exe. 以官方 Qt 5.4.0+MinGW 开发环境为例,windeployqt工具在 %QTDIR%\Qt5.4.0\5.4\mingw491_32\bin 目

  • Qt creator中项目的构建配置和运行设置的步骤

    使用 Qt Creator 集成开发环境构建和运行程序是一件非常简单的事情,一个按钮或者一个快捷键搞定全部,大家已经都了解了.但是,这些看起来简单的过程,背后到底发生了什么呢? 点击 Qt Creator 项目模式,可以看到当前项目的配置界面: 在打开具体的项目之后,Qt Creator 的项目模式才会变得可用.对于打开的项目,比如 HelloWorld 项目,可配置的内容如上图左侧显示的五大类,分别是"Build & Run(构建和运行)""编辑器"&qu

  • MFC程序中使用QT开发界面的实现步骤

    目录 添加QT依赖 添加信号槽机制 添加qt界面 配置元编译过程 一些问题的处理 测试信号槽 使用qt designer 设计界面 如果你有一个现成的MFC项目在做维护,但是你厌倦了使用MFC繁琐的操作来做界面美化,或者你需要在这个项目中用到QT里面好用的某些功能:亦或者是你需要使用某些只能在MFC中使用的组件,但是界面这部分已经用QT做好了.那么这篇文章可能可以帮助到你 演示环境使用Visual Studio 2019 + QT5.12.8 版本 添加QT依赖 首先创建一个基于对话框的MFC工

随机推荐