QTime QLCDNumber电子时钟

这个博客展示了如何创建一个使用QLCDNumber显示时间的无边框窗口电子时钟。通过QTimer每秒更新时间,并实现了窗口拖动功能。用户可以点击鼠标左键拖动时钟,右键点击则关闭时钟。
摘要由CSDN通过智能技术生成

#ifndef DIALOG_H
#define DIALOG_H

#include 
   
   
    
    
#include 
    
    
     
     
#include 
     
     
      
      
#include 
      
      
       
       


class Dialog : public QLCDNumber
{
    Q_OBJECT

public:
    Dialog(QWidget *parent = 0);
    ~Dialog();
    void mousePressEvent(QMouseEvent *);
    void mouseMoveEvent(QMouseEvent *);
public slots:
    void showTime();

private:
    QPoint dragPosition; //保存鼠标左上角偏移量
    bool showColon; //用来显示时间是否显示
};

#endif // DIALOG_H
#include "dialog.h"
#include 
       
       
         #include 
        
          Dialog::Dialog(QWidget *parent) : QLCDNumber(parent) { QPalette p = palette(); p.setColor(QPalette::Window,Qt::magenta); setPalette(p); //设置背景 setDigitCount(8); setWindowFlags(Qt::FramelessWindowHint);//设置一个没有边框的窗体 //setWindowOpacity(0.5); QTimer *timer = new QTimer(this); connect(timer,SIGNAL(timeout()),this,SLOT(showTime())); timer->start(1000); showTime(); showColon = true; resize(150,60); } Dialog::~Dialog() { } void Dialog::mousePressEvent(QMouseEvent *event) { if(event->button() == Qt::LeftButton) { dragPosition = event->globalPos() - frameGeometry().topLeft(); //鼠标相对于时钟窗体左上角的偏移位置 event->accept(); } if(event->button() == Qt::RightButton) { close(); } } void Dialog::mouseMoveEvent(QMouseEvent *event) { if(event->buttons() &Qt::LeftButton) { move(event->globalPos() -dragPosition); event->accept(); } } void Dialog::showTime() { QTime time = QTime::currentTime();//获得当前时间 QString text = time.toString("hh:mm:ss"); if(showColon) { text[2]=':'; text[5]=':'; showColon=false; } else { text[2]=' '; text[5]=' '; showColon = true; } display(text); } #include "dialog.h" #include 
         
           int main(int argc, char *argv[]) { QApplication a(argc, argv); Dialog w; w.show(); return a.exec(); } 
          
         
       
      
      
     
     
    
    
   
   


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值