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()
{

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM