5. テキストコントロールをつける
次にやるべきことは作成したフレームにメインのテキストを編集することです。このコントロールはwxTextCtrlと呼ばれています
- デザイナを開き、フレームwxFrame1.pyを編集します。
- パレット上では「Basic Controls」ペインを選んでください。wxTextControlを選択します。wxTextControlがわからない人は、各コントロールにマウスカーソルを持ってくると、その名前を見つけることができます。
- デザイナウィンドウでマウスをクリックします。新規のテキストコントロールが描画されます。サイズが小さいままコントロールが貼り付けられますがそのままで大丈夫です。サイズ調整は必要ありません。ソースに反映させて保存した後で実行すればわかりますが、デフォルトでは画面に可能な限り大きくはめこまれます。
- さて、デフォルトwxTextControlはシングルライン入力になっています。複数行での入力ができるコントロールがほしいですよね。これを行うには、インスペクタのコンストラクタタブの「style」フィールドを編集します。
- styleを編集し「wxTE_MULTILINE」と設定します。このstyleフィールドはコンポーネントのスタイルを設定します。styleフィールドは有効なpythonコードも含みます。2種類の論理スタイルを設定するには、「|」で切り離します。wxTextControlクラスのスタイルを調べる場合、wxPythonオンラインヘルプ上でwxTextContolのスタイルは全部見ることができます。
- コントロール名も変更しておきましょう。Nameフィールドをクリックし、デフォルト名の「textCtrl1」を「txtEditor」にします。
- コンストラクタペイン上に「Value」と呼ばれるフィールドがあります。このフィールドにはコントロールのデフォルト値が含まれています。実行時にこのValueが入力されている状態になってしまうので、このフィールドを空白にします。
- 作成したコントロールをソースコードに反映させるため、インスペクタウィンドウのPostボタンを押して更新します。更新したソースコードも保存します
- アプリケーションを実行します
テキストエディタのフィールドは自動的に可能な限りのスペースの大きさになります。もしフレームのサイズを変更したら、フィールドもそれにつれて変化します。注意してほしいのは、wxWindowsはスクロールバー付きで提供されるということです。文字を書いていて画面の下まできたら自動的にスクロールします。もしエディットウィンドウの幅より多く文字をタイプすれば、折り返されると思います。デフォルトではカット&ペーストもできますし、ブロックマーキングもできます。