您的位置:首页 > 编程语言 > Qt开发

[QT]QT 教程之实例分析[七]电子钟

2010-06-12 09:37 417 查看
重点知识已近在代码里注释...

请仔细看代码

本文原创

转载请保留此链接 http://blog.csdn.net/siren0203
头文件

digiClogk.h

#ifndef DIGICLOCK_H
#define DIGICLOCK_H
#include <QLCDNumber>
class digiClock:public QLCDNumber{
Q_OBJECT
public:
digiClock(QWidget *parent=0);
void mouseMoveEvent(QMouseEvent *);
void mousePressEvent(QMouseEvent *);
public slots:
void showTime();
private:
QPoint point;
bool showColon;
};
#endif // DIGICLOCK_H


实现代码

main.cpp

#include <QApplication>
#include <QPalette>
#include <QTimer>
#include <QTime>
#include <QMouseEvent>
#include "digiClock.h"
digiClock::digiClock(QWidget *parent):QLCDNumber(parent){
//设置电子表窗体背景颜色
QPalette p=palette();
p.setColor(QPalette::Window,Qt::blue);
setPalette(p);
//设置 窗体为 没有边框栏和标题的窗体;
setWindowFlags(Qt::FramelessWindowHint);
//设置窗体透明度 X11上无效
this->setWindowOpacity(0.5);
//时间定时器
QTimer *timer=new QTimer();
connect(timer,SIGNAL(timeout()),this,SLOT(showTime()));
timer->start(1000);
//设置窗体大小
resize(350,60);
//初始化
showColon=true;
}
//显示时钟
void digiClock::showTime(){
QTime time=QTime::currentTime();    //获取当前系统时间
//   将获取的时间转换成字符串类型 toString 设置转换后的时间格式
QString text;
if(showColon){
text=time.toString("hh:mm");
showColon=false;
}else{
text=time.toString("hh mm");
showColon=true;
}
//显示时间
display(text);
}
void digiClock::mouseMoveEvent(QMouseEvent *event){
if(event->button()==Qt::LeftButton){
point=event->globalPos()-frameGeometry().topLeft();
event->accept();
}
}
void digiClock::mousePressEvent(QMouseEvent *event){
if(event->buttons()&Qt::LeftButton){
move(event->globalPos()- point);
event->accept();
}
}
int main(int argc,char ** argv){
QApplication app(argc,argv);
digiClock digi;
digi.show();
return app.exec();
}


效果图

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: