0

フォームの入力用にバリデーターを作成しようとしています。wxPython では、標準の wxTextValidator などがサポートされていないため、wx.Validator を継承する必要があることを既に学びました。

私の質問は:

  • 文字列が単純なルールに準拠していることをどの程度効果的にチェックするか(正規表現は使用しないでください)

    acceptableChars = ['a', 'b', ...]

    all(char in acceptableChars for char in string)

    このようなものは効率的ですか?すべての英数字または数字をきれいに指定する方法は?または、準備ができているクラスまたは関数がありますか?

  • メソッドをオーバーライドValidateすると、データの入力中にのみ制約が保持されます-つまり、ユーザーが数字を英数字に入力できないTextCtrlようにするか、モーダルダイアログを閉じるときにのみチェックしますか?

4

2 に答える 2

1

Validate()デフォルトでは、ダイアログが閉じようとしているときにのみ呼び出されますが、コントロールがフォーカスを失ったときに自分で呼び出すこともできます。最後に、コントロールが一部の文字をまったく受け入れない場合は、wxEVT_CHARイベントをインターセプトして、それらの文字が入力されないようにすることもできます。私は wxPython デモがその方法を示していると信じています。

于 2013-11-04T01:16:58.803 に答える