目录

时间类QTime/QTimer  20210119

实例:电子时钟

代码及详细解释如下:

【digiclock.cpp】

【digiclock.h】

【main.cpp】

备注Configure Project


时间类QTime/QTimer  20210119

QTime的currentTime();           //获取当前的系统时间

QTime的toString("hh:mm:ss A");    //将获取的当前时间转换为字符串类型  hh:mm:ss A 表示21:11:06 PM;    H:mm:s a 表示9:11:6 pm

实例:电子时钟

新建:Qt Widgets Application

项目名称:Clock

类名:Dialog

基类:QDialog

不选择“创建界面”。

然后,添加C++ Class,类名:DigiClock,基类:<Custom> QLCDNumber

最终效果如下:

代码及详细解释如下:

【digiclock.cpp】

#include "digiclock.h"#include <QTimer>
#include <QTime>
#include <QMouseEvent>DigiClock::DigiClock(QWidget *parent):QLCDNumber(parent)
{//设置时钟背景色                          //三句话QPalette p = palette();                 //获取调色板信息p.setColor(QPalette::Window,Qt::blue);  //设置前景色setPalette(p);setWindowFlags(Qt::FramelessWindowHint);//设置窗体标识Flags:该窗体没有面板边框和标题栏FramelessWindowHintsetWindowOpacity(0.5);                  //窗体透明度Opacity:0.5为半透明//定时器QTimer类QTimer *timer = new QTimer(this);//事件关联connect(timer,SIGNAL(timeout()),this,SLOT(showTime()));timer->start(1000);                     //1000ms=1sshowTime();                             //初始时间显示resize(150,60);                         //电子时钟显示尺寸showColon = true;                       //初始化冒号显示标志
}void DigiClock::showTime()
{QTime time = QTime::currentTime();QString text = time.toString("hh:mm");if(showColon){text[2]=':';                        //不用双引号showColon = false;}else{text[2]=' ';showColon = true;}display(text);
}//鼠标按下函数
void DigiClock::mousePressEvent(QMouseEvent *event)
{if(event->button()==Qt::LeftButton)//鼠标左键按下{dragPosition = event->globalPos() - frameGeometry().topLeft();//鼠标当前位置相对窗体左上角的偏移量event->accept();}if(event->button()==Qt::RightButton)//鼠标右键按下{close();  //退出窗体}
}//鼠标移动函数
void DigiClock::mouseMoveEvent(QMouseEvent *event)
{if(event->buttons() & Qt::LeftButton)//鼠标左键按下{move(event->globalPos() - dragPosition);//move()指的是窗体左上角的位置event->accept();}
}

【digiclock.h】

#ifndef DIGICLOCK_H
#define DIGICLOCK_H#include <QLCDNumber>class DigiClock : public QLCDNumber
{Q_OBJECTpublic:DigiClock(QWidget *parent = 0);void mousePressEvent(QMouseEvent *);void mouseMoveEvent(QMouseEvent *);private slots:void showTime();private:bool showColon;QPoint dragPosition;//偏移量:鼠标当前位置相对窗体左上角的偏移量
};
#endif // DIGICLOCK_H

【main.cpp】

#include "dialog.h"                 //使用哪个类就必须把包含该类的头文件引用过来(*.h文件中包含了相应类的定义)#include <QApplication>             //每个使用[Qt图形化应用程序]中都必须使用一个QApplication对象//QApplication管理各种各样的图形化应用程序的广泛资源、基本设置、控制流及事件处理等#include "digiclock.h"int main(int argc, char *argv[])    //这里是应用程序的入口。几乎所有使用Qt的情况下,main()函数只需在将控制转交给Qt库之前执行初始化,然后Qt库通过事件向程序告知用户的行为。//所有Qt程序必须有且只有一个main()函数。argc是命令行变量的数量,argv是命令行变量的数组。
{QApplication a(argc, argv);     // a是创建的QApplication类的对象,用来处理命令行变量。所有被Qt识别的命令行参数都将从argv中移去,argc也因此减少DigiClock w;                    //创建DigiClock类的对象(包含该类头文件)w.show();                       //窗口部件可见return a.exec();                //main()函数将控制权交给Qt,Qt完成事件处理工作,当应用程序退出的时候,exec()函数的值就会返回。//exec()函数中,Qt接收并处理用户和系统的事件,并且将他们传递给适当的窗口部件。
}

备注Configure Project

中标麒麟系统下编译文件文件夹为:build-Clock-unknown-Debug

Windows系统下编译文件文件夹为:xxx\build-Clock-Desktop_Qt_5_10_1_MinGW_32bit-Debug

Windows系统下,一定要选好工程配置参数(Configure Project),像我所使用的Qt就不能选用Desktop Qt 5.10.1 MSVC 64bit(No Debugger无调试器),而要选用Desktop Qt 5.10.1 MinGW 32bit(调试器存在)

以上编译环境仅供参考。

时间类QTime/QTimer相关推荐

  1. Python Qt GUI设计:QCalendar日历类和QDateTimeEdit时间类(基础篇—20)

    目录 1.QCalendar日历类 2.QDateTimeEdit时间类 1.QCalendar日历类 QCalendar是一个日历控件,它提供了一个基于月份的视图,允许用户通过鼠标或键盘选择日期,默 ...

  2. 0004:Qt常用类 - QTime

    Qt常用类 - QTime 1 开发环境 在介绍内容之前,先说明一下开发环境,如下图: Qt版本:Qt5.3.2: Qt开发工具:Qt Creater 3.2.1: Qt构建工具:Desktop Qt ...

  3. C++实践参考——时间类

    [项目 - 时间类]阅读.运行程序后,按要求扩充类的功能 #include <iostream> using namespace std; class Time { public:void ...

  4. Java基础 ----常用时间类

    Java基础 ----常用时间类 java.util.Date java.util.Calendar java.text.SimpleDateFormat new Date().getTime() & ...

  5. 构造一个日期类java_Java8 新日期时间类(1)

    Java.time 包的优势 使用Java8,新的日期时间API引入覆盖旧的日期时间API的以下缺点. 非线程安全 - java.util.Date不是线程安全的,因此开发者必须在使用日期处理并发性问 ...

  6. 统计函数——汇总统计时间类数据

    如下数据源 要求统计各区分关于时间类的数据,如下图: 2至5列数据,如下设置公式并向下拖动: B列[接收数]:因为时间日期类数据在Excel中是一个数值,因此可以利用Count函数获取包含数值的个数 ...

  7. java web日期_java-web——第十一课 时间类

    前言: 在我们学习java web之中,实体类的属性经常会遇到时间类 时间类也是一个很重要的类, 首先我们先了解一下经常使用的时间类 经常使用的时间类也就是这三个类 具体的可以查阅api 我们这章主要 ...

  8. Java的知识点22——时间处理相关类、Date时间类(java.util.Date)、DateFormat类和SimpleDateFormat类、Calendar日历类

    时间处理相关类 用long类型的变量来表示时间,获得现在时刻的"时刻数值":long now = System.currentTimeMillis(); Date时间类(java. ...

  9. [YTU]_2617(B C++时间类的运算符重载)

    题目描述 C++时间类的运算符重载 定义一个时间类Time,其数据成员为表示时间的小时(hour).分(minute),秒(second). 重载运算符"+",使之能用于时间对象的 ...

最新文章

  1. 【Spring】通过动态代理改进银行转账事务控制
  2. 有人从英伟达借了台DGX A100,让神经网络自己造了个GTA5自己玩
  3. CRM数据如何让企业未卜先知
  4. iOS5 UI 设计新手段 Storyboard
  5. 文章刚刚开源就被培训机构“BP”了,过于不要脸
  6. c语言 2个字节字符串,【单选题】在C语言中,字符型数据所占的内存空间是 A. 2 个字节 B. 4 个字节 C. 1 个字节 D. 由用户自定义...
  7. 9个GVP国产Java开源项目!是真滴哇塞
  8. HMS Core Insights第三期直播预告—— 当我们在谈论App的时候,我们还可以谈论什么?
  9. 云计算的三种服务模式的讲解
  10. java我的世界溺尸为啥这么少,我的世界:溺尸刷新几率存在问题?溺尸刷怪塔为何得不到三叉戟?...
  11. python制作成绩分析系统_python实现学生成绩测评系统
  12. Mac下解决v2端口被占用,shadowsocket(ss)程序残留问题
  13. 【嵌入式Linux】学习路径
  14. static关键字是什么意思?java中是否可以覆盖一个private方法或者static方法
  15. 聚焦边缘创新,Rancher推出全新开源力作Octopus
  16. PHPCMS短信接口替换
  17. ant man 什么意思_ant是什么意思中文翻译
  18. 关于IE浏览器打开部分页面的开发人员工具时闪退打不开的问题
  19. 【优秀的相册排版设计工具】SmartAlbums 2.1.10 for Mac
  20. 小猪的Android入门之路——目录(持续更新)

热门文章

  1. 五大国产数据库,你了解用过吗?
  2. 随性、随遇、随缘、随喜
  3. 【html和html5总结--详细版】
  4. 大一经历 不全是 寥寥草草应付申报单项奖
  5. 【Node】Node核心模块
  6. kbmMW均衡负载与容灾(3)(转载红鱼儿)
  7. 移动硬盘或者nvme硬盘安装ubuntu系统
  8. 1. HbuliderX-移动端APP开发-前端开发ajax请求失败或错误-常见问题-原因分析-处理
  9. psql 查询jsonb 数组 数据 分列解析数据
  10. python 执行alias_设置bash alias别名及取消