Dateデータ型は、しばしば、検出されたQtの次のように日付と時刻のクラスの種類:
- QTIME:時刻データ型、唯一その時、のような夜03時23分13秒。
- QDATE:日付データ型、など2017年4月5日のみとその日付、。
- QDateTime:日付と時刻を表すDateTimeデータ型、2017年3月23日午前8時12分43秒など。
Qtは、現在までに時間を捧げ、そしてディスプレイ・インターフェース・コンポーネントを編集、次のように記載されています。
- QTimeEdit:コンポーネントエディタと時刻表示。
- QDateEdit:コンポーネントの編集と日付を表示します。
- QDateTimeEdit:コンポーネントディスプレイに日付と時刻を編集します。
- QCalendarWidget:日付とカレンダーの形でコンポーネントを選択します。
例では、関連するクラスのこれらの手順samp4_5日時、その動作中に、図1に示すインターフェースを示す図です。
(実施例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秒」です。
日付と時刻のデータを文字列に変換されて取得し、
「読む現在の日付と時刻」ボタン()をクリックし、次のように機能コードチャネル信号は、次のとおりです。
- 空のダイアログ:: on_btnGetTime_clicked()
- {
- //現在の日付と時刻、3つの専用設定した日付と時刻のデータエディタを取得し、文字列に変換
- QDateTime curDateTime = QDateTime :: currentDateTime()。
- UI-> timeEdit->のsetTime(curDateTime.time())。
- UI-> editTime->のsetText(curDateTime.toString( "HH:MM:SS11))。
- UI-> dateEdit->のsetdate(curDateTime.date())。
- UI-> editDate->のsetText(curDateTime.toString( "YYYY-MM-DD"))。
- UI-> dateTimeEdit-> setDateTime(curDateTime)。
- UI-> editDateTime->のsetText(curDateTime.toString( "YYYY-MM-DD HH:MM:SS"));
- }
まず、()静的関数currentDateTime QDateTimeクラスで現在の日付と時刻を取得し、変数CURDATE時間に割り当てました。
次いで3日付、時刻、日付、または時刻のQDateTimeを(使用curDateTime変数値を有する時間エディタインターフェイスを設定)、日付()は、それぞれ、時間と日付を抽出します。
日付と時刻がcurDateTimeが文字列に変換した後、編集ボックスのLINEEDITに表示される指示しました。日時は、それぞれ、時間、日付、異なる形式の日付と時刻を示すQDateTimeのtoString()関数の文字列を変換するために使用されます。
- UI-> editTime->のsetText(curDateTime.toString(MHH:MM:SS "));
- UI-> editDate->のsetText(curDateTime.toString( "YYYY-MM-DD"))。
- UI-> editDateTime->のsetText(curDateTime.toString( "YYYY-MM-DD HH:MM:SS"));
QDateTime ::のtoString()関数は、関数のプロトタイプは次のとおりです。
QStringのQDateTime ::のtoString(のconst QStringのfiformat)のconst
文字列にフォーマットによって指定された形式で日付と時刻のデータ。フォーマットは、日付または時刻の様々な部分を表す特定文字を含む文字列であり、表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に文字列変数に変換することができます日付と時刻のデータとして、次のとおりです。
- 空のダイアログ:: on_btnSetDateTime_clicked()
- {
- // QDateTimeに文字列
- QStringのSTR = UI-> editDateTime->テキスト();
- STR = str.trimmed()。
- if (!str.isEmpty())
- {
- QDateTime datetime=QDateTime::fromString(str,"yyyy-MM-dd hh:mm:ss");
- ui->dateTimeEdit->setDateTime(datetime);
- }
- }
静态函数 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(),在日历上选择的日期变化后会发射此信号,为此信号创建槽函数,编写代码如下:
纯文本复制
- void Dialog::on_calendarWidget_selectionChanged()
- {
- //在日历上选择日期
- QDate dt=ui->calendarWidget->selectedDate();
- QString str=dt.toString("yyyy年 M 月 d 日");
- ui->editCalendar->setText(str);
- }