digiclock.h
#ifndef DIGICLOCK_H
#define DIGICLOCK_H
#include <QLCDNumber>
#include <QPoint>
class DigiClock : public QLCDNumber
{
Q_OBJECT
public:
DigiClock(QWidget *parent = 0);
~DigiClock();
void mousePressEvent(QMouseEvent *);
void mouseMoveEvent(QMouseEvent *);
public slots:
void showTime();
private:
QPoint dragPosition; //滑鼠點選位置相對窗體左上角的偏移量
bool showColon; //是否顯示“:”
};
#endif // CLOCK_H
digiclock.cpp
#include "digiclock.h"
#include <QPalette>
#include <QTimer>
#include <QTime>
#include <QMouseEvent>
DigiClock::DigiClock(QWidget *parent)
: QLCDNumber(parent)
QPalette plt; //執行個體化調色闆對象
plt.setColor(QPalette::Window,Qt::blue);
setPalette(plt);
setWindowFlags(Qt::FramelessWindowHint);
setWindowOpacity(0.5); //設定不透明度
QTimer *timer = new QTimer(this);
connect(timer,SIGNAL(timeout()),this,SLOT(showTime()));
timer->start(1000);
showTime();
resize(150,60);
showColon = true;
}
DigiClock::~DigiClock()
void DigiClock::showTime()
QTime time = QTime::currentTime();
QString text = time.toString("hh:mm");
if(showColon)
{
text[2] = ':';
showColon = false;
}
else
text[2] = ' ';
showColon = true;
display(text);
void DigiClock::mousePressEvent(QMouseEvent * e)
if (e->button() == Qt::LeftButton)
dragPosition = e->globalPos() - frameGeometry().topLeft();
e->accept();
if(e->button() == Qt::RightButton)
close();
void DigiClock::mouseMoveEvent(QMouseEvent * e)
if(e->buttons() & Qt::LeftButton)
move(e->globalPos() - dragPosition);
本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利。
本文轉自韓兆新部落格部落格園部落格,原文連結:http://www.cnblogs.com/hanzhaoxin/archive/2012/11/22/2783459.html,如需轉載請自行聯系原作者