QTime的currentTimeky用来获取本地时间。
头文件:
#ifndef WIDGET_H
#define WIDGET_H
#include <QLCDNumber>
class Widget : public QLCDNumber
{
Q_OBJECT
public:
Widget(QWidget *parent = 0);
void mousePressEvent(QMouseEvent *);
void mouseMoveEvent(QMouseEvent *);
~Widget();
public slots:
void showtime();
private:
QPoint movemouse;//鼠标移动量
bool showcolon;//是否显示:
};
#endif // WIDGET_H
源文件:
#include "widget.h"
#include<QTimer>
#include<QTime>
#include<QMouseEvent>
Widget::Widget(QWidget *parent)
: QLCDNumber(parent)
{
//设置时钟背景
QPalette p=palette();
p.setColor(QPalette::Window,Qt::green);//设置窗口为绿色
setPalette(p);
setWindowFlags(Qt::FramelessWindowHint);//设置窗口无边框无标题栏
setWindowOpacity(0.5);//设置透明度
resize(200,60);
QTimer *mytimer=new QTimer(this);
connect(mytimer,&QTimer::timeout,this,&Widget::showtime);
showtime();
mytimer->start(1000);//1000ms
showcolon=true;
}
void Widget::showtime()
{
QTime localtime=QTime::currentTime();
QString str=localtime.toString("hh:mm");//h小时,m分,s秒
//反复显示
if(showcolon)
{
str[2]=':';
showcolon=false;
}
else
{
str[2]=' ';
showcolon=true;
}
this->display(str);//lcd显示时间
}
void Widget::mousePressEvent(QMouseEvent *e)
{
if(e->button()==Qt::LeftButton)
{
movemouse=e->globalPos()-frameGeometry().topLeft();//获取相对移动量
}
else if(e->button()==Qt::RightButton)
{
close();
}
}
void Widget::mouseMoveEvent(QMouseEvent *e)
{
if(e->buttons()&&Qt::LeftButton)
{
move(e->globalPos()-movemouse);//相对于主窗口显示
e->accept();
}
}
Widget::~Widget()
{
}