忍者ブログ

Lutetiums

QGIS カスタム UI の日付入力は QgsDateTimeEdit を使う

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

コメント

QGIS カスタム UI の日付入力は QgsDateTimeEdit を使う

QGIS にて地物属性のフォームにカスタムUIを使う場合で日付・時刻を入力するフィールドを設ける場合、Input Widgets 内の QdateEdit やQdateTimeEdit は使用せず、QGIS custom widgets 内の QgsDateTimeEdit を使用する。(基本的にどんな入力についてもカスタム UI は QGIS custom widgets から使う)

理由:
Qt の標準日付入力は Nullable じゃないので、日付 Null の表現ができず、デフォルトの日付(時刻)が入力・表示されてしまう。
一方、QgsDateTimeEdit は allowNull プロパティがあり Null を許容する。


詳細:(QGIS 3.10.4 LTR)


  1. Qt Designer with QGIS で日付入力項目のある UI ファイルを用意
  2. QdateEdit, QdateTimeEdit はInput Widgets 内にあり、アイコンも表示されているのでこれを使いがち
  3. QgsDateTimeEdit は QGIS custom widgets 内にある
  4. 日付時刻に Null 値を持つデータを準備(フィールド名にに日本語使ってますが、UI ファイルをテキストエディタで直編集してます。)
  5. 属性フォームに作成したカスタムUIを適用して、属性表示すると Qt 標準の Input Widget はNull をデフォルト日付で表示してしまう

カスタム UI 作らなきゃいけないほど入力項目多いデータでいくつも日付フィールド配置した後に、Null 入れられないことに気づき "Qt date nullable" とかで調べて時間を無駄にしたので。 QgsDateTimeEdit 使ってください。
QGISのプロパティから規定値も設定できるし。更新時だけ now() で現在日付時刻とか便利。
PR

コメント

P R



カレンダー

10 2024/11 12
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30