利用QT的DateEdit和TimeEdit设置系统时间

作为QT的忠实粉,昨天才学习解决用qt的date设置系统的时间,可谓是映象深刻啊。刚开始在网上查找了很久,网上也有很多的方法,但是都不太适用于我目前的情况,于是经过不断的努力和不断的往前人得膀上爬,终于寻得一个方法,今天就来简单的谈上一谈。作为初级选手,就不用过多的言语表达我心中兴奋的情感了,直接用代码来表达,请看如下:

在我们使用QT时。很多时候都难免会用到系统的时间,但是系统的时间又不是很准,一般都为初始值,因此这就需要我们自己去手动设置了。手动设置呢有两种方法,一种是同ntp网络获取设置,一种就是简单粗暴的直接写上去了,当然用QT还不是最粗暴的,还有通过命令直接设置,这已经不在粗暴的范围了,这在我称之为野蛮。在QT的设置中可以直接的用:

                      QString time = "date -s \"2018-11-11 14:15:00\"" ;  //将日期和时间转为QString
                      QProcess::startDetached(time); 
                      QProcess::startDetached("hwclock -w"); // 同步系统时间
                      QProcess::startDetached("sync"); // 保存配置

操作完成OK,简单的时间设置就可以了。接下来说本章的重点,就是怎么样通过dateedit和timeedit控件设置本地时间。首先呢先在UI界面设置两个控件,如下图:

                                      

拉出来就是这么个情况,如果想将本地时间设置为"2018-11-11 14:15:00”,而且在QT界面上随时可以设置。呢么首先将上面的时间设置日期为2018-11-11,时间设置为14:15:00,然后在代码中获取控件中的时间,代码为:                                     

   QString strYear = ui->dateEdit->sectionText(QDateEdit::YearSection);
    QString strMonth = ui->dateEdit->sectionText(QDateEdit::MonthSection);
    QString strDay = ui->dateEdit->sectionText(QDateEdit::DaySection);
    QString strHour = ui->timeEdit->sectionText(QTimeEdit::HourSection);
    QString strMinute =ui->timeEdit->sectionText(QTimeEdit::MinuteSection);
    QString strSecond = ui->timeEdit->sectionText(QTimeEdit::SecondSection);

    qDebug() << "Year : " << strYear;
    qDebug() << "Month : " << strMonth;
    qDebug() << "Day : " << strDay;
    qDebug() << "Hour : " << strHour;
    qDebug() << "Minute : " << strMinute;
    qDebug() << "Second : " << strSecond;

获取时间就OK了,然后就写入了,

特殊说明一下,在这里不能直接的将上面的数据写入去,因为格式有错误,所以要先将月份的英文简称处理成为简单的1-12 月,

                    if(strMonth == "Jan"){strMonth = "01";}
                  if(strMonth == "Feb"){strMonth = "02";}
                  if(strMonth == "Mar"){strMonth = "03";}
                   if(strMonth == "Apr"){strMonth = "04";}
                    if(strMonth == "May"){strMonth = "05";}
                    if(strMonth == "Jun"){strMonth = "06";}
                     if(strMonth == "Jul"){strMonth = "07";}
                    if(strMonth == "Aug"){strMonth = "08";}
                   if(strMonth == "Sep"){strMonth = "09";}
                    if(strMonth == "Oct"){strMonth = "10";}
                    if(strMonth == "Nov"){strMonth = "11";}
                    if(strMonth == "Dec"){strMonth = "12";}                     

                QString m3 = strYear+"-"+strMonth+"-"+strDay+" "+strHour+":"+strMinute+":"+strSecond;
                QString datetime = "date -s \""+m3+"\"" ;


                      QProcess::startDetached(datetime); 
                      QProcess::startDetached("hwclock -w"); // 同步系统时间
                      QProcess::startDetached("sync"); // 保存配置

然后就可以了,运行一遍程序,你会发现惊喜哦,从此以后系统的时间你爱怎么设置就怎么设置了,妈妈再也不用担心系统时间不对了。

  • 6
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
毕业设计 课程设计 系统设计 系统开发 C++ QT 数据库 源代码 毕业设计 课程设计 系统设计 系统开发 C++ QT 数据库 源代码 毕业设计 课程设计 系统设计 系统开发 C++ QT 数据库 源代码 毕业设计 课程设计 系统设计 系统开发 C++ QT 数据库 源代码 毕业设计 课程设计 系统设计 系统开发 C++ QT 数据库 源代码 毕业设计 课程设计 系统设计 系统开发 C++ QT 数据库 源代码 毕业设计 课程设计 系统设计 系统开发 C++ QT 数据库 源代码 毕业设计 课程设计 系统设计 系统开发 C++ QT 数据库 源代码 毕业设计 课程设计 系统设计 系统开发 C++ QT 数据库 源代码 毕业设计 课程设计 系统设计 系统开发 C++ QT 数据库 源代码 毕业设计 课程设计 系统设计 系统开发 C++ QT 数据库 源代码 毕业设计 课程设计 系统设计 系统开发 C++ QT 数据库 源代码 毕业设计 课程设计 系统设计 系统开发 C++ QT 数据库 源代码 毕业设计 课程设计 系统设计 系统开发 C++ QT 数据库 源代码 毕业设计 课程设计 系统设计 系统开发 C++ QT 数据库 源代码 毕业设计 课程设计 系统设计 系统开发 C++ QT 数据库 源代码 毕业设计 课程设计 系统设计 系统开发 C++ QT 数据库 源代码 毕业设计 课程设计 系统设计 系统开发 C++ QT 数据库 源代码 毕业设计 课程设计 系统设计 系统开发 C++ QT 数据库 源代码 毕业设计 课程设计 系统设计 系统开发 C++ QT 数据库 源代码 毕业设计 课程设计 系统设计 系统开发 C++ QT 数据库 源代码 毕业设计 课程设计 系统设计 系统开发 C++ QT 数据库 源代码 毕业设计 课程设计 系统设计 系统开发 C++ QT 数据库 源代码 毕业设计 课程设计 系统设计 系统开发 C++ QT 数据库 源代码 毕业设计 课程设计 系统设计 系统开发 C++ QT 数据库 源代码 毕业设计 课程设计 系统设计 系统开发 C++ QT 数据库 源代码 毕业设计 课程设计 系统设计 系统开发 C++ QT 数据库 源代码

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值