ユーザ入力の検証に最適な場所は、エントリタイプのウィジェットのフォーカスアウトイベントハンドラです(これは私の考えです)。私はフォーカスを次のコントロールに移して現在のウィジェットに焦点を当てるのを避けるという考えでフォーカスアウトイベントからTRUEを返そうとしますが、これはOKではありません(必要に応じて動作しません)。Gtkがフォーカスアウトを抑制する
妥当性検査が成功しなかった場合に、次のコントロールへの転送を抑止する適切な方法、およびそのようなウィジェット(gtkEntry、gtkSpinButtonなど)に検証コードを入れる場所は両方ともマウスで呼び出された信号で使用できるようにするキーボード操作?
私は、ほとんどのシナリオで、最終的なアクション(「保存」)前に全体的な検証を行う方が良いと考えていますが、入力を制御して制限する必要があるケースがあります。その場合、入力は「範囲内」でなければならず、そうでなければウィジェットは有効なデータが入力されるまでフォーカスを保持する必要があります。それで、どうやって、必要ならばフォーカスを前進させないでください。 –