📄 digitalclock.cpp
字号:
/****************************************************************************
** File: 'digitalclock.cpp'
**
** Created: Sat Dec 2 15:58:32 2006
** by: Wya ($Id: edited Sat Dec 2 15:58:32 2006 $)
**
** WARNING! All changes made by wya
**
****************************************************************************/
#include <QtGui>
#include "digitalclock.h"
/***
**
**
***/
DigitalClock::DigitalClock(QWidget *parent) : QLCDNumber(parent)
{
setSegmentStyle(Filled);
m_hours=0;
m_minutes=0;
m_seconds=0;
m_microSeconds=0;
m_formatMicroSecond=false;
//QTimer *timer = new QTimer(this);
// connect(timer, SIGNAL(timeout()), this, SLOT(showTime()));
// connect(timer, SIGNAL(timeout()), this, SLOT(slotDisplayStopWatchTimer()));
//timer->start(100);
// showTime();
//set display
setWindowTitle(tr("Digital Clock"));
resize(150, 60);
}
/***
**
**
***/
void DigitalClock::showTime()
{
QTime time = QTime::currentTime();
QString text = time.toString("hh:mm:ss.z");
//if ((time.second() % 2) == 0)
// text[2] = ' ';
display(text);
}
/***
** set time in the LCD
**
***/
void DigitalClock::setDisplayTime(const QString & text)
{
#ifdef LOG_STOPWATCH
m_time=text;
#endif
display(text);
}
/***
**
**set display like hh:mm:ss.zz
***/
void DigitalClock::setForamtWithMircoSecond()
{
QTime time (0,0,0,0);
QString txt = time.toString("hh:mm:ss.z");
setDisplayTime(txt);
m_formatMicroSecond=true;
setToolTip("Double Click ,Reset the digital.");
}
/***
**
**set display like hh:mm:ss
***/
void DigitalClock::setForamtWithSecond()
{
QTime time (0,0,0,0);
QString txt = time.toString("hh:mm:ss");
setDisplayTime(txt);
m_formatMicroSecond=false;
}
void DigitalClock::slotDisplayStopWatchTimer()
{
m_microSeconds=m_microSeconds+1;
if(m_microSeconds>9)//for second
{
m_microSeconds=0; //reset
m_seconds = m_seconds+1;
if(m_seconds>59) //for minutes
{
m_seconds = 0;
m_minutes=m_minutes+1;
if(m_minutes>59) //for hours
{
m_minutes=0;
m_hours=m_hours+1; //we don't think we use more 24
}
}
}
//set value to the display string
QString txt= getTimeString(m_hours, m_minutes,m_seconds,m_microSeconds*100);
setDisplayTime(txt);
}
/***
** return a string like hh:mm:ss.z
**
***/
QString DigitalClock::getTimeString(int hh,int mm,int ss,int zz)
{
QTime time (hh,mm,ss,zz);
QString txt = time.toString("hh:mm:ss.z");
return txt;
}
/***
** we will reset the LCD display
**
***/
void DigitalClock::mouseDoubleClickEvent ( QMouseEvent * event )
{
if(event->button()==Qt::LeftButton && m_formatMicroSecond==true)
{
setForamtWithMircoSecond();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -