• 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()
    {
    
    }
  • 相关阅读:
    HDU 1505 City Game
    HDU 1506 Largest Rectangle in a Histogram
    HDU 1838 Chessboard
    HDU 2512 一卡通大冒险
    HDU 1081 To The Max
    HDU 2845 Beans
    HDU 1422 重温世界杯
    HDU 1231 最大连续子序列
    第6章 接口和实现
    java面向抽象编程样例
  • 原文地址:https://www.cnblogs.com/zhanggaofeng/p/5964939.html
Copyright © 2020-2023  润新知