欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Qt中QDateTimeEdit的具體使用

 更新時(shí)間:2023年06月06日 09:48:48   作者:嵌入式小龍  
本文主要介紹了Qt中QDateTimeEdit的具體使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

一.描述

1.QDateTimeEdit是一個(gè)用來編輯日期和時(shí)間的單行文本框,由于大繼承自QAbstractSpinBox類,可以用箭頭按鈕來調(diào)節(jié)文本內(nèi)容,也可以用鍵盤輸入。在用按鈕修改內(nèi)容時(shí)可以單獨(dú)修改某個(gè)部分(年、月、日、小時(shí)、分)

2.QDateTimeEdit可以用來單獨(dú)顯示日期(QDate),也可以單獨(dú)顯示時(shí)間(QTime),當(dāng)然也可以顯示日期時(shí)間(QDateTime)

二.QDateTime的使用

QDateTime是用來描述日期和時(shí)間的對(duì)象,他是QDate和QTime兩個(gè)類的組合,包含了年月日/小時(shí)分秒毫秒。

1、構(gòu)造函數(shù)

按照下面的方式構(gòu)造對(duì)象都是可以的。

QDate mdate = QDate(2012,1,1);
QTime mtime = QTime(12,12,12);
QDateTime mdate1 = QDateTime(mdate);
QDateTime mdate3 = QDateTime(mdate,mtime);

2、計(jì)算時(shí)間差

int utc_time = m_datetime.offsetFromUtc();      //與標(biāo)準(zhǔn)時(shí)區(qū)的時(shí)間差
qDebug()<<"utc 時(shí)間差"<<utc_time;
QDate m_date1 = QDate(2012,10,2);
int day_cnt = m_date1.daysTo(QDate::currentDate());
qDebug()<<"相差天數(shù)"<<day_cnt;

3、獲取時(shí)間

QDateTime datetime = QDateTime::currentDateTime();
qDebug()<<"當(dāng)前時(shí)間"<<datetime;
QDate date = QDate::currentDate();
qDebug()<<"當(dāng)前日期"<<date;
QTime time = QTime::currentTime();
qDebug()<<"當(dāng)前time"<<time;
int day = date.day();
qDebug()<<"當(dāng)前月下第幾日"<<day;
int month = date.month();
qDebug()<<"第幾月"<<month;
int year = date.year();
qDebug()<<"哪一年"<<year;
int month_day_num = date.daysInMonth();
qDebug()<<"當(dāng)前月有多少天"<<month_day_num;
int year_day_num = date.daysInYear();
qDebug()<<"當(dāng)前年有多少天"<<year_day_num;

三.QDateTimeEdit的應(yīng)用

1.構(gòu)造函數(shù)

m_DateTimeEdit = new QDateTimeEdit(QDateTime::currentDateTime(),this);
m_DateTimeEdit = new QDateTimeEdit(QDate::currentDate(),this);
m_DateTimeEdit = new QDateTimeEdit(QTime::currentTime(),this);

2.顯示格式

QDateTImeEdit里每一個(gè)部分(年月日時(shí)分秒)都是一個(gè)section,我們可以根據(jù)指定的樣式來改變顯示格式

m_DateTimeEdit->setDisplayFormat("yyyy-MM-dd-hh-mm-ss");

指定的格式有時(shí)間格式符,可以直接使用

h -----------------沒有前導(dǎo)0的小時(shí)(0——12或0——23)
hh ---------------有前導(dǎo)0的小時(shí)(00——12或00——23)
H -----------------沒有前導(dǎo)0的顯示(0——23)
HH ---------------有前導(dǎo)0的顯示(00——23)
m -----------------沒有前導(dǎo)0的分鐘(0——59)
mm --------------有前導(dǎo)0的分鐘(00——59)
s ------------------沒有前導(dǎo)0的秒(0——59)
ss -----------------有前導(dǎo)0的秒(00——59)
z -------------------第二個(gè)小數(shù)部分,沒有尾隨0的毫秒(0——999)
zzz ----------------第二個(gè)小數(shù)部分,有尾隨0的毫秒(000——999)
AP/A --------------用AM/PM顯示(只用一種就可以)
ap/a ---------------用am/pm顯示
t --------------------時(shí)區(qū)

還有日期的格式符

d -------------- 沒有前導(dǎo)0的數(shù)字日期(1——31)
dd ------------ 有前導(dǎo)0的數(shù)字日期(01——31)
ddd ----------- 縮寫的本地化日期名稱(周日——周六,Sun——Sat)
dddd ---------- 完整的本地化日期名稱(星期日——星期六)
M -------------- 沒有前導(dǎo)0的數(shù)字月(1——12月)
MM ------------ 有前導(dǎo)0的數(shù)字月(01——12)
MMM --------- 縮寫的本地化月份(1月——12月)
MMMM ------- 完整的本地化月份(一月——十二月)
yy -------------- 年的后兩位
yyyy ----------- 年(4位)

效果如下:

3.日歷選擇控件

m_DateTimeEdit->setCalendarPopup(true);

效果如下:

四.信號(hào)

日期發(fā)生改變

信號(hào)中都傳遞了相對(duì)應(yīng)的QDateTime或QDate的參數(shù)。要注意的是信號(hào)發(fā)出是在數(shù)據(jù)徹底發(fā)生改變后,比如用鍵盤輸入年份,只有當(dāng)2019全輸入后才會(huì)發(fā)送信號(hào)。

QDateTimeEdit::dateTimeChanged()     //日期時(shí)間發(fā)生改變    
QDateTimeEdit::dateChanged()         //日期發(fā)生改變    
QDateTimeEdit::timeChanged()         //時(shí)間發(fā)生改變

源碼:

mainwindow.c

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    this->resize(800,600);
    QDateTime m_datetime = QDateTime::currentDateTime();
    QDate mdate = QDate(2012,1,1);
    QTime mtime = QTime(12,12,12);
    QDateTime mdate1 = QDateTime(mdate);
    QDateTime mdate3 = QDateTime(mdate,mtime);
    m_DateTimeEdit = new QDateTimeEdit(m_datetime,this);
//    m_DateTimeEdit = new QDateTimeEdit(QDate::currentDate(),this);
//    m_DateTimeEdit = new QDateTimeEdit(QTime::currentTime(),this);
    m_DateTimeEdit->setGeometry(100,100,200,40);
    int utc_time = m_datetime.offsetFromUtc();      //與標(biāo)準(zhǔn)時(shí)區(qū)的時(shí)間差
    qDebug()<<"utc 時(shí)間差"<<utc_time;
    QDate m_date1 = QDate(2012,10,2);
    int day_cnt = m_date1.daysTo(QDate::currentDate());
    qDebug()<<"相差天數(shù)"<<day_cnt;
    QDateTime datetime = QDateTime::currentDateTime();
    qDebug()<<"當(dāng)前時(shí)間"<<datetime;
    QDate date = QDate::currentDate();
    qDebug()<<"當(dāng)前日期"<<date;
    QTime time = QTime::currentTime();
    qDebug()<<"當(dāng)前time"<<time;
    int day = date.day();
    qDebug()<<"當(dāng)前月下第幾日"<<day;
    int month = date.month();
    qDebug()<<"第幾月"<<month;
    int year = date.year();
    qDebug()<<"哪一年"<<year;
    int month_day_num = date.daysInMonth();
    qDebug()<<"當(dāng)前月有多少天"<<month_day_num;
    int year_day_num = date.daysInYear();
    qDebug()<<"當(dāng)前年有多少天"<<year_day_num;
    m_DateTimeEdit->setDisplayFormat("yyyy-MM-dd-hh-mm-ss");
    m_DateTimeEdit->setCalendarPopup(true);
}
MainWindow::~MainWindow()
{
    delete ui;
}

到此這篇關(guān)于Qt中QDateTimeEdit的具體使用的文章就介紹到這了,更多相關(guān)Qt QDateTimeEdit內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 解決C++ 無法從void 轉(zhuǎn)換為L(zhǎng)RESULT的方法詳解

    解決C++ 無法從void 轉(zhuǎn)換為L(zhǎng)RESULT的方法詳解

    本篇文章是對(duì)C++中無法從void轉(zhuǎn)換為L(zhǎng)RESULT的解決方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C++堆排序算法實(shí)例詳解

    C++堆排序算法實(shí)例詳解

    這篇文章主要介紹了C++堆排序算法,簡(jiǎn)單分析了堆排序算法的原理并結(jié)合實(shí)例形式分析了C++實(shí)現(xiàn)堆排序的具體操作技巧,需要的朋友可以參考下
    2017-08-08
  • C++ 實(shí)現(xiàn)對(duì)象的克隆 (多種方法)

    C++ 實(shí)現(xiàn)對(duì)象的克隆 (多種方法)

    在 C++ 中,對(duì)象的克隆通常通過實(shí)現(xiàn)一個(gè)克隆接口來完成,該接口允許創(chuàng)建對(duì)象的深拷貝,下面是實(shí)現(xiàn)對(duì)象克隆的幾種方法,具體取決于需要克隆的對(duì)象類型和上下文,感興趣的朋友跟隨小編一起看看吧
    2024-12-12
  • C++常見錯(cuò)誤中英文對(duì)照表

    C++常見錯(cuò)誤中英文對(duì)照表

    對(duì)于剛學(xué)編程,剛接觸C++的新手來說,編譯運(yùn)行報(bào)錯(cuò)是最頭疼的一件事,爆出一堆英文,英語差一點(diǎn)的又不知道什么意思,所以也不知道如何去改,在此,我給大家傳一份常見錯(cuò)誤中英文對(duì)照表及簡(jiǎn)單解釋,希望可以幫到大家
    2016-05-05
  • C++使用yaml-cpp庫(kù)操作YAML的示例代碼

    C++使用yaml-cpp庫(kù)操作YAML的示例代碼

    配置文件有利于我們靈活配置工程,解決大量重復(fù)勞動(dòng),也方便調(diào)試,YAML?是一種人類可讀的數(shù)據(jù)序列化格式,它使用縮進(jìn)和特定的符號(hào)來表示數(shù)據(jù)結(jié)構(gòu),在本文中,我們將詳細(xì)介紹如何在?C++?中使用?yaml-cpp?庫(kù)來解析和生成?YAML?格式的數(shù)據(jù),需要的朋友可以參考下
    2024-10-10
  • C++使用htslib庫(kù)讀入和寫出bam文件的實(shí)例

    C++使用htslib庫(kù)讀入和寫出bam文件的實(shí)例

    下面小編就為大家分享一篇C++使用htslib庫(kù)讀入和寫出bam文件的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2017-11-11
  • C++中的數(shù)據(jù)內(nèi)存分布原理

    C++中的數(shù)據(jù)內(nèi)存分布原理

    這篇文章主要介紹了C++中的數(shù)據(jù)內(nèi)存分布,主要從動(dòng)態(tài)內(nèi)存管理方式,內(nèi)存泄漏等方面介紹的,文中也有相關(guān)的示例代碼,需要的朋友可以參考下
    2023-05-05
  • c++ 寫注冊(cè)表方式讓程序開機(jī)自啟動(dòng)

    c++ 寫注冊(cè)表方式讓程序開機(jī)自啟動(dòng)

    這篇文章主要介紹了c++ 寫注冊(cè)表方式讓程序開機(jī)自啟動(dòng),需要的朋友可以參考下
    2017-09-09
  • c語言實(shí)現(xiàn)簡(jiǎn)易版三子棋(附完整代碼)

    c語言實(shí)現(xiàn)簡(jiǎn)易版三子棋(附完整代碼)

    大家好,本篇文章主要講的是c語言實(shí)現(xiàn)簡(jiǎn)易版三子棋(附完整代碼),感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下
    2022-01-01
  • VS2022+libtorch+Cuda11.3安裝測(cè)試教程詳解(調(diào)用cuda)

    VS2022+libtorch+Cuda11.3安裝測(cè)試教程詳解(調(diào)用cuda)

    這篇文章主要介紹了VS2022+libtorch+Cuda11.3安裝測(cè)試(調(diào)用cuda),本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05

最新評(píng)論