Qt-LCD电子时钟

举报
DreamLife 发表于 2022/04/15 01:26:20 2022/04/15
【摘要】 先上效果图吧 就是这个样子,简单的时间显示时间。 这里需要注意的是,我们最好建立一个空文件,这里我们需要建立一个集成QLCDNumber的类 具体方法如下图 一下是源代码 digiclock.h #ifndef DIGICLOCK_H#define DIGICLOCK_H #include <QObject&g...

先上效果图吧

就是这个样子,简单的时间显示时间。

这里需要注意的是,我们最好建立一个空文件,这里我们需要建立一个集成QLCDNumber的类

具体方法如下图

一下是源代码

digiclock.h


  
  1. #ifndef DIGICLOCK_H
  2. #define DIGICLOCK_H
  3. #include <QObject>
  4. #include <QLCDNumber>
  5. class DigiClock : public QLCDNumber
  6. {
  7. Q_OBJECT
  8. public:
  9. DigiClock(QWidget *parent = 0);
  10. void mousePressEvent(QMouseEvent *event);
  11. void mouseMoveEvent(QMouseEvent *event);
  12. private slots:
  13. void showTime();
  14. private:
  15. QPoint dragPosition;
  16. bool showColon;
  17. };
  18. #endif // DIGICLOCK_H

digiclock.cpp


  
  1. #include "digiclock.h"
  2. #include <QTime>
  3. #include <QTimer>
  4. #include <QMouseEvent>
  5. #include <QString>
  6. DigiClock::DigiClock(QWidget *parent) : QLCDNumber(parent)
  7. {
  8. QPalette p = palette();
  9. p.setColor(QPalette::Window,Qt::blue);
  10. setPalette(p);
  11. setWindowFlags(Qt::FramelessWindowHint);
  12. setWindowOpacity(0.5);
  13. QTimer *timer = new QTimer(this);
  14. connect(timer,SIGNAL(timeout()),this,SLOT(showTime()));
  15. timer->start(1000);
  16. showTime();
  17. resize(150,60);
  18. showColon = true;
  19. }
  20. void DigiClock::mousePressEvent(QMouseEvent *event)
  21. {
  22. if(event->button() == Qt::LeftButton)
  23. {
  24. dragPosition = event->globalPos()-frameGeometry().topLeft();
  25. event->accept();
  26. }
  27. if(event->button() == Qt::RightButton)
  28. {
  29. close();
  30. }
  31. }
  32. void DigiClock::mouseMoveEvent(QMouseEvent *event)
  33. {
  34. if(event->buttons() & Qt::LeftButton)
  35. {
  36. move(event->globalPos() - dragPosition);
  37. event->accept();
  38. }
  39. }
  40. void DigiClock::showTime()
  41. {
  42. QTime time = QTime::currentTime();
  43. QString text = time.toString("hh:mm");
  44. if(showColon)
  45. {
  46. text[2] = ':';
  47. showColon = false;
  48. }
  49. else
  50. {
  51. text[2] = ' ';
  52. showColon = true;
  53. }
  54. display(text);
  55. }

工程目录:https://gitee.com/DreamLife-Technology_DreamLife/LCDClock

文章来源: dreamlife.blog.csdn.net,作者:DreamLife.,版权归原作者所有,如需转载,请联系作者。

原文链接:dreamlife.blog.csdn.net/article/details/79381784

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。