QTime的currentTime()函数用于获取当前的系统时间。
QTime的toString()函数用于将获取的当前时间转换为字符串类型。
toString函数指定转换后时间的显示格式,例如:
hh:mm:ss A //A表示PM,AP表示AM,Ap表示am,a表示pm
QTime的toString()函数也可直接利用Qt::DateFormat作为参数指定时间显示的格式,如Qt::TextDate,Qt::ISODate.Qt::LocaleDate等。
//构建一个小的电子时钟
//设置时钟背景
bool showColon=true;//showColon控制电子钟时分之间的闪烁。
QPalette p=palette();
p.setColor(QPalette::Window,Qt::blue);
setPalette(p);
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);//设置窗体显示尺寸
void showTime()
{
QTime time=QTime::currentTime();
QString text=time.toString("hh:mm");
if(showColon)
{
text[2]=':';
showColon=false;
}
else
{
text[2]=' ';
showColon=true;
}
display(text);//显示转换好的字符串时间。
}
QTimer类提供了定时器信号和单触发定时器。
QTimer类把它的timeout()函数连接到指定的槽,使用start()来开始,这段时间过去了他会发射timeout()信号
可以添加mousePressEvent和mouseMoveEvent来拖拽时钟。
QPoint dragPosition;
void mousePressEvent(QMouseEvent*event)
{
if(event->button()==Qt::LeftButton)
{
dragPosition=event->globalPos()-frameGeometry().topLeft();
event->accept();
}
if(event->button()==Qt::RightButton)
{
close();
}
}
void mousePressEvent(QMouseEvent*event)
{
if(event->buttons()&Qt::LeftButton)
{
move(event->globalpos()-dragPosition);
event->accept();
}