C#ATIA

↑タイトル詐欺 主にFusion360API 偶にCATIA V5 VBA(絶賛ネタ切れ中)

Fletのテキストフィールドでのバリデーション1

文字を入力した際のバリデーションをしたいんです。

例えばマクロで要素を選択してOKボタンを押すと"平面を選択して下さい!"とか、
ファイルを開こうとしてフォルダの深い階層のファイルを選択してOKボタンを
押すと”現在のファイルは変更されています。それでも開きますか?”
みたいなメッセージ出されるの最悪じゃないですか? 最初にチェックしてくれよ
って思っちゃいます。

要は入力された文字が適切かどうかをチェックしたいんです。
Fusion360APIのUIでは、それが簡単に出来るような仕組みが実装されていて
助かります。

ドキュメントを見た所、それっぽいものが見当たりませんでした。
TextField | Flet

Issuesで調べてみるとこちらがHitしました。似たようなことは皆さん考えますね。
人気が有るフレームワークは助かります。
Dynamic Validations in `TextField` · Issue #631 · flet-dev/flet · GitHub

具体的な整数のみを受け付けるサンプルがこちらにUpされていました。
flet_code_for_only_decimal_characters_in_text_field/only_integers at main · applicatlat/flet_code_for_only_decimal_characters_in_text_field · GitHub
・・・想定外のボリューム。
on_changeだけで良いかな?と思っていたのですが、on_focusとon_blurも行うんですね。
あっkeyboard_eventもやってる・・・。

こちらはテキストで警告してますが、個人的にはFusion360の様に文字を赤くして
警告したいんですよね。んーerror_textとerror_style利用するっぽいですね。

javascriptcssで入力直後では無くて、ちょっと間をおいて判断するような方法が
有った気がするんだけど・・・実装できるかな?