首页 > 编程语言 >07_QT时间编程之QT时钟

07_QT时间编程之QT时钟

时间:2024-04-17 17:12:41浏览次数:23  
标签:Widget clicked QT void 编程 ui time 07

QT时间编程之QT时钟

这节课我们做一个计时器

​ qtime:qt的时间类

​ qtimer:qt的定时类

代码

widget.h

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QTime>
#include <QTimer>

namespace Ui {
class Widget;
}

class Widget : public QWidget
{
    Q_OBJECT

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

    QTimer timer;
    QTime time;

private slots:
    void on_startBt_clicked();
    void timeout_slot();

    void on_stopBt_clicked();

    void on_resetBt_clicked();

    void on_bitBt_clicked();

private:
    Ui::Widget *ui;
};

#endif // WIDGET_H

widget.cpp

#include "widget.h"
#include "ui_widget.h"

static int i;

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);

    connect(&timer, SIGNAL(timeout()), this, SLOT(timeout_slot()));

    time.setHMS(0, 0, 0, 0);
    ui->showTime->setText("00:00:00.000");
}

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

void Widget::on_startBt_clicked()
{
    timer.start(1); //ms
}

void Widget::timeout_slot()
{
    time = time.addMSecs(1);
    ui->showTime->setText(time.toString("hh:mm:ss.zzz"));
}

void Widget::on_stopBt_clicked()
{
    timer.stop();
}

void Widget::on_resetBt_clicked()
{
    timer.stop();
    time.setHMS(0, 0, 0, 0);
    ui->showTime->setText("00:00:00.000");
    ui->bitTime->clear();
    i=0;
}

void Widget::on_bitBt_clicked()
{
    ui->bitTime->append(QString::number(++i)+":\n"+time.toString("hh:mm:ss.zzz"));
}

widget.ui

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>Widget</class>
 <widget class="QWidget" name="Widget">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>649</width>
    <height>393</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>Widget</string>
  </property>
  <layout class="QGridLayout" name="gridLayout">
   <item row="0" column="0">
    <layout class="QVBoxLayout" name="verticalLayout">
     <item>
      <widget class="QLabel" name="showTime">
       <property name="font">
        <font>
         <pointsize>29</pointsize>
        </font>
       </property>
       <property name="text">
        <string/>
       </property>
       <property name="alignment">
        <set>Qt::AlignCenter</set>
       </property>
      </widget>
     </item>
     <item>
      <layout class="QHBoxLayout" name="horizontalLayout">
       <item>
        <widget class="QPushButton" name="startBt">
         <property name="text">
          <string>开始</string>
         </property>
        </widget>
       </item>
       <item>
        <spacer name="horizontalSpacer">
         <property name="orientation">
          <enum>Qt::Horizontal</enum>
         </property>
         <property name="sizeHint" stdset="0">
          <size>
           <width>40</width>
           <height>20</height>
          </size>
         </property>
        </spacer>
       </item>
       <item>
        <widget class="QPushButton" name="stopBt">
         <property name="text">
          <string>停止</string>
         </property>
        </widget>
       </item>
       <item>
        <spacer name="horizontalSpacer_2">
         <property name="orientation">
          <enum>Qt::Horizontal</enum>
         </property>
         <property name="sizeHint" stdset="0">
          <size>
           <width>40</width>
           <height>20</height>
          </size>
         </property>
        </spacer>
       </item>
       <item>
        <widget class="QPushButton" name="resetBt">
         <property name="text">
          <string>重置</string>
         </property>
        </widget>
       </item>
       <item>
        <spacer name="horizontalSpacer_3">
         <property name="orientation">
          <enum>Qt::Horizontal</enum>
         </property>
         <property name="sizeHint" stdset="0">
          <size>
           <width>40</width>
           <height>20</height>
          </size>
         </property>
        </spacer>
       </item>
       <item>
        <widget class="QPushButton" name="bitBt">
         <property name="text">
          <string>打点</string>
         </property>
        </widget>
       </item>
      </layout>
     </item>
     <item>
      <widget class="QTextBrowser" name="bitTime"/>
     </item>
    </layout>
   </item>
  </layout>
 </widget>
 <layoutdefault spacing="6" margin="11"/>
 <resources/>
 <connections/>
</ui>

标签:Widget,clicked,QT,void,编程,ui,time,07
From: https://www.cnblogs.com/mzx233/p/18141247

相关文章

  • 06_QT网络编程之UDP通信
    QT网络编程之UDP通信udp编程​ udp不分客户端和服务器,只需要使用一个类QUdpSocket。代码Udp.pro#-------------------------------------------------##ProjectcreatedbyQtCreator2024-04-13T23:07:41##-------------------------------------------------QT......
  • 11_QT跨平台运行之把QT程序交叉编译到ARM开发板
    QT跨平台运行之把QT程序交叉编译到ARM开发板交叉编译QT代码步骤一:给QT程序布局,然后在构造函数添加自动设置屏幕大小的代码。代码如下:#include<QDesktopWidget>#include<QStyle>#include<QRect>QDesktopWidget*deskTopWidget=QApplication::desktop();QRectdeskRec......
  • 10_QT系统移植之在开发板上部署QT运行环境
    QT系统移植之在开发板上部署QT运行环境一.开始部署1.我们在Ubuntu新创建一个文件夹,然后把我们用busybox做好的文件系统拷贝到这个文件下。如下图所示:2.然后我们解压这个根文件系统到当前所在的路径下。3.我们在这个解压出来的根文件系统下新创建一个opt的文件夹,如下图所示:......
  • 09_QT系统移植之交叉编译QT源码和触摸源码
    QT系统移植之交叉编译QT源码和触摸源码交叉编译QT源码一.源码下载​QT官网下载:http://download.qt.io/new_archive/qt/5.7/5.7.1/二.编译环境开发环境:Ubuntu16编译器:arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2三.编译触摸触摸源码在这个视频目录......
  • Linux与Shell 第2天 实操、软件包管理、Shell编程
    传送门Linux与Shell第0天阿里云安装Ubuntu22.04以及桌面Linux与Shell第1天文件目录、VIM、网络配置、系统管理、远程登录Linux与Shell第2天实操、软件包管理、Shell编程实操菜鸟教程Linux命令大全文件目录输入作用ls-a显示隐藏文件ls-lh详细信息......
  • LeetCode 面试经典150题---007
    ####13.罗马数字转整数罗马数字包含以下七种字符:I,V,X,L,C,D和M。字符数值I1V5X10L50C100D500M1000例如,罗马数字2写做II,即为两个并列的1。12写做X......
  • 一位天才程序员20年编程心得
    从11岁时,我就一直在编程,并且一直都很喜欢技术和编程。这些年来,我积累了一些艰难又容易的经验。作为一名程序员,你或许还没这些经验,但我会把它们献给那些想从中学到更多的朋友。我会持续更新这些经验,我可能还会有更多的感想,但就我这20年来看,我想下面这个列表中基本不需要增添额......
  • 结对编程
    结对同学:2252832程序要求:两个运算符,100以内的数字,不需要写答案。需要检查答案是否正确,并且保证答案在0-100之间根据题目要求,我们决定使用c++语言完成编程,使用两个运算符,100以内的数字。需要检查答案是否正确,并且保证答案在0到100之间结对编程过程1.首先确认问题需求,......
  • 结对编程——100以内加减乘除
    前言按照结对编程的原则,我(2252627)和我的合作伙伴(2252616)两人进行了结对编程,我们共同完成的项目的是小学的四则运算,通过随机生成四则运算题目,供学生答题,并在学生提交答案后进行自动评定,返回正误。经过讨论,我们采用了C++语言作为开发语言,并选取DevC++5.11作为开发环境。功能要求......
  • Python-并行编程秘籍(五)
    Python并行编程秘籍(五)原文:zh.annas-archive.org/md5/e472b7edae31215ac8e4e5f1e5748012译者:飞龙协议:CCBY-NC-SA4.0第九章:调试阶段这最后一章将介绍两个重要的软件工程主题——调试和测试,这是软件开发过程中的重要步骤。本章的第一部分专注于代码调试。错误是程序中的错......