1.添加新文件digitalclock继承QLCDNumber
头文件
#ifndef DIGITALCLOCK_H
#define DIGITALCLOCK_H
#include <QLCDNumber>
class DigitalClock : public QLCDNumber
{
Q_OBJECT
public:
DigitalClock(QWidget* parent = 0);
protected:
void mousePressEvent(QMouseEvent* event); //鼠标按下点击事件
void mouseMoveEvent(QMouseEvent* event); //鼠标移动事件
private slots: //槽函数
void showTime(); //显示时间
private:
QPoint m_dragPosition; //保存鼠标点相对电子钟表窗体左上角的偏移值
bool m_showColon; //钟表显示 :
};
#endif // DIGITALCLOCK_H
cpp
#include "digitalclock.h"
#include <QTimer>
#include <QTime>
#include <QMouseEvent>
DigitalClock::DigitalClock(QWidget* parent):QLCDNumber(parent)
{
//设置蓝色背景
QPalette p = palette();
p.setColor(QPalette::Window,Qt::blue);
setPalette(p);
//无边框窗体风格
setWindowFlags(Qt::FramelessWindowHint);
//窗体透明度
setWindowOpacity(0.2);
QTimer *timer = new QTimer(this);
connect(timer,&QTimer::timeout,this,&DigitalClock::showTime);
timer->start(1000);
showTime();
resize(150,60);
m_showColon = true;
}
void DigitalClock::mousePressEvent(QMouseEvent *event)
{
if(event->button() == Qt::LeftButton)
{
//位置
m_dragPosition = event->globalPos() //鼠标相对屏幕左上角的位置
- frameGeometry().topLeft(); //时钟窗体左上角的位置
event->accept();
}
if(event->button() == Qt::RightButton)
{
close();
}
}
void DigitalClock::mouseMoveEvent(QMouseEvent *event)
{
if(event->buttons() & Qt::LeftButton)
{
move(event->globalPos() - m_dragPosition);
event->accept();
}
}
void DigitalClock::showTime()
{
QTime time = QTime::currentTime();
QString strTime = time.toString("hh:mm"); //时间格式
if(m_showColon){
strTime[2] = ':';
}else{
strTime[2] = ' ';
}
display(strTime);
m_showColon = !m_showColon;
}
2.main.cpp
显示窗口是
DigitalClock