Qt:簡陋版電子時鐘
阿新 • • 發佈:2021-01-30
…
#include "clock.h"
#include <QApplication>
#include "diglraclock.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
DiglraClock w;
w.show();
return a.exec();
}
#include "diglraclock.h"
#include <QTimer>
#include <QTime>
#include <QMouseEvent>
DiglraClock::DiglraClock(QWidget *parent):QLCDNumber(parent)
{
QPalette p = palette(); //獲取調色盤
p.setColor(QPalette::Window,Qt::white); //設定顏色 當前視窗 白色
setWindowFlag(Qt::FramelessWindowHint); //無邊框視窗
setWindowOpacity(0.4);
QTimer * timer = new QTimer(this);
connect(timer,&QTimer::timeout,this,&DiglraClock::showTime);
timer->start(1000);
showTime();
resize(160,60);
m_showColon = true;
}
void DiglraClock::mousePressEvent(QMouseEvent *event)
{
// 滑鼠按下按鈕 左鍵
if(event->buttons() == Qt:: LeftButton){
//滑鼠相對螢幕左上角位置
m_dragPosition = event->globalPos() - frameGeometry().topLeft(); // 時鐘左上角位置
event->accept(); //接受
}
}
void DiglraClock::mouseMoveEvent(QMouseEvent *event)
{
// 滑鼠按下按鈕 左鍵
if(event->buttons() & Qt::LeftButton){
move(event->globalPos() - m_dragPosition);
event->accept();
}
//滑鼠 按下按鈕 右鍵
if(event->buttons() == Qt::RightButton)
close(); //關閉視窗
}
void DiglraClock::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; //取反實現 閃爍 :
}
}