後天性QT時間

Dateデータ型は、しばしば、検出されたQtの次のように日付と時刻のクラスの種類:

  1. QTIME:時刻データ型、唯一その時、のような夜03時23分13秒。
  2. QDATE:日付データ型、など2017年4月5日のみとその日付、。
  3. QDateTime:日付と時刻を表すDateTimeデータ型、2017年3月23日午前8時12分43秒など。


Qtは、現在までに時間を捧げ、そしてディスプレイ・インターフェース・コンポーネントを編集、次のように記載されています。

  1. QTimeEdit:コンポーネントエディタと時刻表示。
  2. QDateEdit:コンポーネントの編集と日付を表示します。
  3. QDateTimeEdit:コンポーネントディスプレイに日付と時刻を編集します。
  4. QCalendarWidget:日付とカレンダーの形でコンポーネントを選択します。


例では、関連するクラスのこれらの手順samp4_5日時、その動作中に、図1に示すインターフェースを示す図です。


例samp4_5ランタイムインターフェイス
(実施例1)図ランタイムインターフェースsamp4_5

時刻データと日付文字列の間の変換

時刻、日付、エディタのプロパティ設定

。組み立て時間、日付、日時エディタとしてQTimeEdit、QDateEdit、QDateTimeEditを使用して1フォーム「日時」グループボックス図の左上に、右側面、場所毎にQLineEditアセンブリ列表示用。

QDateEditとQTimeEditがQDateTimeEditから継承されている、特定の日付または時刻の機能の表示を実現。実際には、QDateEditおよび表示機能は、単に優れた属性を設定することによって達成QDateTimeEdit QTimeEditから入手できます。

このクラスの主な特性はQDateTimeEditは、以下に記載さ:

  • 日時:日時。
  • 日付:日付は、自動的に日付を設定する場合も同様に、日時が自動的に日付に変更されます、日時を設定する日付を変更します。
  • 時間:時間は、自動的に時刻を設定する場合も同様に、自動的に時間に日時を変更します、時間設定日時を変更します。
  • maximumDateTime、minimumDateTime:最大値、最小値、日付と時刻。
  • maximumDate、minimumDate:最大、最小日付。
  • maximumTime、minimumTime:最大、最小時間。
  • currentSection:カーソルがタイプQDateTimeEdit ::節で列挙され、現在の日付と時刻のデータセグメントを入力します。日時は、垂直ブロックの右側にある編集ボタンをクリックして複数のデータにQDateTimeEdit表示期間は、現在のセグメントの値を変更することができます。入力部YearSectionカーソルは、「年」の値を変更します。
  • currentSectionIndex:参照番号で示さカーソル入力部。
  • calendarPopup:ポップアップカレンダーの選択ボックスを許可するかどうか。値がtrueの場合、右QComboBox同様のドロップダウンボタンの入力ボタンになり、カレンダーの選択ボックスをクリックし、ボタンをカレンダーの日付を選択するために使用されたときに表示されます。QTimeEditの場合、このプロパティは無効です。
  • displayFormatに:表示形式、日付および時刻データの表示形式、例えば、にセット「YYYY-MM-DD HH:MM:SS」、日時データを表示「が2016年11月2日午前8時23分46秒」です。

日付と時刻のデータを文字列に変換されて取得し、

「読む現在の日付と時刻」ボタン()をクリックし、次のように機能コードチャネル信号は、次のとおりです。

 
  1. 空のダイアログ:: on_btnGetTime_clicked()
  2. {
  3. //現在の日付と時刻、3つの専用設定した日付と時刻のデータエディタを取得し、文字列に変換
  4. QDateTime curDateTime = QDateTime :: currentDateTime()。
  5. UI-> timeEdit->のsetTime(curDateTime.time())。
  6. UI-> editTime->のsetText(curDateTime.toString( "HH:MM:SS11))。
  7. UI-> dateEdit->のsetdate(curDateTime.date())。
  8. UI-> editDate->のsetText(curDateTime.toString( "YYYY-MM-DD"))。
  9. UI-> dateTimeEdit-> setDateTime(curDateTime)。
  10. UI-> editDateTime->のsetText(curDateTime.toString( "YYYY-MM-DD HH:MM:SS"));
  11. }

まず、()静的関数currentDateTime QDateTimeクラスで現在の日付と時刻を取得し、変数CURDATE時間に割り当てました。

次いで3日付、時刻、日付、または時刻のQDateTimeを(使用curDateTime変数値を有する時間エディタインターフェイスを設定)、日付()は、それぞれ、時間と日付を抽出します。

日付と時刻がcurDateTimeが文字列に変換した後、編集ボックスのLINEEDITに表示される指示しました。日時は、それぞれ、時間、日付、異なる形式の日付と時刻を示すQDateTimeのtoString()関数の文字列を変換するために使用されます。

 
  1. UI-> editTime->のsetText(curDateTime.toString(MHH:MM:SS "));
  2. UI-> editDate->のsetText(curDateTime.toString( "YYYY-MM-DD"))。
  3. UI-> editDateTime->のsetText(curDateTime.toString( "YYYY-MM-DD HH:MM:SS"));

QDateTime ::のtoString()関数は、関数のプロトタイプは次のとおりです。

QStringのQDateTime ::のtoString(のconst QStringのfiformat)のconst

文字列にフォーマットによって指定された形式で日付と時刻のデータ。フォーマットは、日付または時刻の様々な部分を表す特定文字を含む文字列であり、表2は、日付及び時刻表示シンボルのための共通フォーマットです。
 

日付表示のための彼らの意義フォーマッター表2
文字 意味
D 日、ゼロ表示を記入しない、1-31
DD 日、ディスプレイゼロ詰め、1月31日
M 月、ゼロ1-12を表示されません。
んん 月、ゼロ詰め表示、01-12
YY 年、二つのディスプレイ、00-99
YYYY で、4桁の表示、等2016年
時間 時間、いやゼロ詰め、0-23または1-12(AM / PMの場合)
HH 時間ゼロパディングディスプレイ2、00-23又は01-12(AM / PMの場合)
H 時間、いやゼロパディング、0-23(たとえ表示AM / PM)
HH 時間、ゼロ詰め表示、00-23(でも表示AM / PMの場合)
メートル 分、いやゼロパディング、0-59
んん ミニッツ、ディスプレイゼロ詰め、00-59
から MS、ノーゼロ詰め、0〜999
ZZZ MS、ゼロパディングディスプレイ3、000-999
APまたはA 使用AM / PM表示
APまたはA 使用AM / PM表示


日付と時刻の表示形式の文字列を設定した場合、あなたはまた、文字、漢字のにも使用を埋めるために使用することができます。例えば、日付の表示形式を設定することができます。

curDateTime.toString( "YYYY年MM月DD日")。

結果の文字列のような「11月21日、2016年」

日時に文字列

同じ缶はまたストリングQTIME、QDATE QDateTime型に変換または静的関数QDateTime :: fromString()、関数プロトタイプで使用します。

QDateTime QDateTime :: fromString(のconst QStringの&文字列、constのQStringの&フォーマット)

最初のパラメーターは、日付時刻文字列の文字列であり、第二の引数は、書式文字列、表2に定義されたフォーマットの文字によって表される形式です。

プログラムは、テキストボックス、日付時刻文字列の後ろに、手動で変更「日付と時刻」を実行している、「セット日」ボタンをクリックし、テキストボックスがQDateTime、およびアセンブリ左DateTimeEditに文字列変数に変換することができます日付と時刻のデータとして、次のとおりです。

 
  1. 空のダイアログ:: on_btnSetDateTime_clicked()
  2. {
  3. // QDateTimeに文字列
  4. QStringのSTR = UI-> editDateTime->テキスト();
  5. STR = str.trimmed()。
  6. if (!str.isEmpty())
  7. {
  8. QDateTime datetime=QDateTime::fromString(str,"yyyy-MM-dd hh:mm:ss");
  9. ui->dateTimeEdit->setDateTime(datetime);
  10. }
  11. }

静态函数 QDateTime::fromString() 将一个字符串按照格式转换为日期时间类型。程序中的代码是:

datetime=QDateTime::fromString(str,"yyyy-MM-dd hh:mm:ss");

这里将字符串 str 按照格式 yyyy-MM-dd hh:mm:ss 转换为日期时间变量,格式是指字符串 str 所表示的日期时间的格式。

QCalendarWidget 日历组件

图 1 窗体右侧是一个 QCalendarWidget 组件,它以日历的形式显示日期,可以用于日期选择。QCalendarWidget 有一个信号 selectionChanged(),在日历上选择的日期变化后会发射此信号,为此信号创建槽函数,编写代码如下:

纯文本复制
 
  1. void Dialog::on_calendarWidget_selectionChanged()
  2. {
  3. //在日历上选择日期
  4. QDate dt=ui->calendarWidget->selectedDate();
  5. QString str=dt.toString("yyyy年 M 月 d 日");
  6. ui->editCalendar->setText(str);
  7. }
发布了21 篇原创文章 · 获赞 2 · 访问量 2202

おすすめ

転載: blog.csdn.net/conimade/article/details/104276560