Qt5 趣学(2):电子钟
来源:互联网 发布:网络教育专科学历 编辑:程序博客网 时间:2024/06/05 06:00
/*----------------------撸代码式-----------------------*//*----------------------clock.h-----------------------*/#ifndef DIGICLOCK_H#define DIGICLOCK_H#include <QLCDNumber>class DigiClock : public QLCDNumber{ Q_OBJECTprivate: QPoint dragPosition; // 保存鼠标点相对电子时钟窗体左上角的偏移值 bool showColon; // 用于显示时间时是否显示“:”public: DigiClock(QWidget *parent = 0); void mousePressEvent(QMouseEvent *vent); void mouseMoveEvent(QMouseEvent *event);public slots: void showTime(); // 显示当前时间};#endif // DIGICLOCK_H/*---------------------clock.cpp----------------------*/#include "digiclock.h"#include <QTimer>#include <QTime>#include <QMouseEvent>#include <QPalette>// 构造函数DigiClock::DigiClock(QWidget *parent) : QLCDNumber(parent){ /* 设置时钟背景 */ // 完成电子时钟窗体背景色的设置 QPalette p = palette(); p.setColor(QPalette::Window,Qt::black); // 背景色为蓝色 setPalette(p); // 设置窗体的标识,此处设置窗体为一个没有面板边框和标题栏的窗体 setWindowFlags(Qt::FramelessWindowHint); // 设置窗体的透明度为0.5,即半透明 setWindowOpacity(0.5); QTimer *timer = new QTimer(this); // 新建一个计时器对象 connect(timer,SIGNAL(timeout()),this,SLOT(showTime())); timer -> start(1000); // 以1000毫秒为周期启动定时器 showTime(); // 初始时间显示 resize(150,60); // 设置电子时钟显示的尺寸 showColon = true; // 初始化}// 鼠标事件(鼠标按下响应函数)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); event -> accept(); }}// showTime槽函数void DigiClock::showTime(){ // 获取当前的系统时间,保存在一个QTime对象中 QTime time = QTime::currentTime(); // 把获取的当前时间转换为字符串类型 QString text = time.toString("hh:mm"); // showColon:控制电子时钟“时”与“分”之间的表示秒钟的两个点的闪显功能 if(showColon) { text[2] = ':'; showColon = false; } else { text[2] = ' '; showColon = true; } display(text); // 显示转换好的字符串时间}/*----------------------main.cpp----------------------*/#include "digiclock.h"#include <QApplication>int main(int argc, char *argv[]){ QApplication a(argc, argv); DigiClock clock; clock.show(); return a.exec();}
0 0
- Qt5 趣学(2):电子钟
- 电子钟
- 电子钟
- 电子钟
- 电子钟
- Qt5 趣学(1):圆面积计算
- Qt5 趣学(3):程序启动画面(广告小画面...)
- 电子钟-汇编程序
- 单片机电子钟
- 电子钟程序
- 1027:电子钟
- 1027:电子钟
- SDJZU-电子钟
- acm 电子钟
- 简易电子钟
- 智能电子钟
- 智能电子钟
- 多功能电子钟
- 软件模式(简单工厂模式、工厂方法模式、抽象工厂模式)
- Java中千变万化字符串
- iOS9-URLScheme适配-引入白名单概念
- Class.forName和ClassLoader.loadClass的比较
- 二维数组 指针 形参 用一个关系图解决问题
- Qt5 趣学(2):电子钟
- 初始化列表的问题
- poj 2773Happy 2006
- poj3187(next_permutation实现全排列+杨辉三角)
- Java 二叉树遍历相关
- 第二章 Java基础之GJLIB动态代理
- 51nod1079 中国剩余定理
- 在单台VM中用Devstack部署OpenStack
- ScrollView里嵌套ListView的解决办法。