[转]QT QDateTime类、QTimer类
QDateTime类,头文件#include <QDateTime> 可以使用QDateTime类来获得系统时间。通过QDateTime::currentDateTime()来获取本地系统的时间和日期信号。可以通过date()和time()来返回 datetime中的日期和时间部分,代码如下: QDateTime *datetime=new QDateTime(QDateTime::currentDateTime()); QString s=datetime->date().tostring();
void Dialog::add() { QDateTime *datetime=new QDateTime(QDateTime::currentDateTime()); QString tmp=datetime->date().toString(); label1->setText(tmp); }
QTimer类 定时器(QTimer)的使用非常简单,只需要一下几个步骤就可以完成定时器的应用。 新建一个定时器 QTimer *time_clock=new QTimer(this); 连接这个定时器的信号和槽,利用定时器的timeout()。 connect(time_clock,SIGNAL(timeout()),this,SLOT(slottimedone())); time_clock->start(2000); 开启定时器,并设定定时周期 --定时器定时有两种方式,start(int time)和setSingleShot(true),其中,start(int time)表示每隔"time"秒就会重启定时器,
可以重复触发定时,利用stop()将定时器关掉,二setSingleShot(true)则是仅启动定时器一次,工程中常用的是前者。
#include "dialog.h" #include <QGridLayout> #include <QDateTime> //构造函数 Dialog::Dialog(QWidget *parent) : QDialog(parent) { time1=new QTimer(this); btn1=new QPushButton(this); edit1=new QLineEdit(this); edit2=new QLineEdit(this); label1=new QLabel(this); btn1->setText("求和"); label1->setText("label"); QGridLayout * layout=new QGridLayout(this); layout->addWidget(edit1,0,0); layout->addWidget(edit2,0,1); layout->addWidget(btn1,1,0); layout->addWidget(label1,1,1); //将btn1点击事件和add函数关联起来 connect(btn1,SIGNAL(clicked()),this,SLOT(add())); //将time1的timeout()时间和on_time函数关联起来 connect(time1,SIGNAL(timeout()),this,SLOT(on_time())); } void Dialog::add() { //判断定时器是否已经启动 if(time1->isActive()) //停止定时器 time1->stop(); else time1->start(1000);//表示每隔1秒就会重启定时器 } //窗口标题每秒变化一次 void Dialog::on_time() { //获取当前系统时间 QDateTime *date1=new QDateTime(QDateTime::currentDateTime()); QString s=date1->time().toString(); //获取秒 //date1->time().second(); this->setWindowTitle(s); } Dialog::~Dialog() { }