DigitalClock.h
#ifndef DIGITALCLOCK_H
#define DIGITALCLOCK_H
#include<QLCDNumber>
class DigitalClock : public QLCDNumber
{
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.cpp
#include "digitalclock.h"
#include<QTimer>
#include<QMouseEvent>
#include<QTime>
DigitalClock::DigitalClock(QWidget *parent):QLCDNumber(parent)
{
QPalette p = palette();
p.setColor(QPalette::Window,Qt::blue);
setPalette(p);
setWindowFlags(Qt::FramelessWindowHint);
setWindowOpacity(0.5);
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("mm:ss");
if(m_showColon){
strTime[2] = ':';
}else{
strTime[2] = ' ';
}
display(strTime);
m_showColon = !m_showColon;
}
mian
#include "clock.h"
#include <QApplication>
#include"digitalclock.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
DigitalClock w;
w.show();
return a.exec();
}