ryotankの備考録日記

趣味の電子工作についての備考録などなど

GUIで入力制限をしてみたい件

運動や栄養素記録入力になると40回とか
たんぱく質を126g含んだ食品など

最大でも5桁以上入力する事がないであろう数値の場合に
入力制限をかけてしまえば楽になると思い立った

するとpythonに標準で入っているGUIモジュール「tkinter」に
入力制限が出来るオプションが付いている模様

それがvalidateオプションとvalidatecommmandオプションの2種類。

validateはテキストボックスに入力されたテキストを検証する
タイミング(つまりトリガー)を指定する

validateで指定できる値が決められている
それが次の表




説明

none

デフォルト:検証しない

focusin

フォーカスが入ったタイミング

focusout

フォーカスが入ったタイミングが外れたタイミング

focus

focusinとfocusinの両方のタイミング

key

テキストボックス内の文字列が変化したタイミング

all

上記の全てのタイミング
なので例えば、テキストが"入力されるたびに"検証したいなら
keyを指定する・・というイメージになる


テキスト検証時に、入力された文字数やテキストの種類を確認する
指定した検証のタイミングが来たら、
validatecommmandで指定されたコールバック関数が実行される。

とりあえずここまで