|
カテゴリ:Python
wxPython 入門 (1) 、wxPython 入門 (2) に引き続き、wPython.org の Getting Started をサカナに第三弾。"Building a simple text editor" のあたりを見ていく。シンプルなテキストエディタを作ってみましょうというところ。
TextCtrl の style を指定すれば、スクロールやワードラップ、右寄せ、左寄せ、センタリング等々の設定ができるところまで wxPython 入門 (2) で確認したが、文字の色をつけたり、フォントを指定したりするにはどうしたらよいかということを見ていく。要するに、TextCtrl をもう少し見ていきましょうということ。 TextCtrl の文字色と背景色を変えるテキストコントロールの SetForgroundColour メソッドで文字色、SetBackgroundColour メソッドで背景色を変更することができる。文字色は、英語名でも、16進形式でも、10進形式(RGB を 0-255で指定) でも可能だが、英語名の場合は、すべての名前が使えるわけではなく、red, blue, yellow, black, white, gray... といった基本色以外は使えない。名前は何が使えるか、未調査。たとえば、wheet みたいなものは使えない。wx.WHITE、wx.GREEN、wx.BLACK、wx.CYAN, wx.RED, wx.LIGHT_GREY のようなものも使える。 無効な色が指定された場合は、デフォルトの色になる。10進形式の場合は、wxColour(R, G, B) で指定する(それぞれ 0~255)。ちなみに、"colour" であって、"color" でないので注意(英国式の綴り)、と思ったら、実は、wx.Color(R,G,B) でも大丈夫だった。どちらかに統一しておいたほうがよいだろう。wx.LIGHT_GREY はあるが、wx.LIGHT_GRAY はないなど、基本的には英国式綴りをベースにした方が問題ないように思える(最初は英国綴りだけしかなくて、みな間違えるので米国式綴りも定義されたんじゃなかろうか。それゆえ、すべてのクラスで両方あるわけではないと。歴史的経緯については調べていないけど)
wx.色 で定義されているのは、次の色。 wx.BLACK wx.WHITE wx.RED wx.BLUE wx.GREEN wx.CYAN wx.LIGHT_GREY TextCtrl のフォントを変える今度は、フォントの種類を変えたり、文字の大きさを変えたり、イタリックにしたり、太字にしたりしてみる。指定は、SetFont メソッドを使う。ただし、直接値を渡すのではなく、wx.Font() でフォント指定のオブジェクトを作ってから渡す。その際には、フォントのサイズ、ファミリー、スタイル、ウェイトを指定しなければならない。下線を文字の下につけたいときは、引数の最後に True を追加する (1でもよい)。False なら下線なし。 フォントファミリーは、 wx.FONTFAMILY_DEFAULT デフォルト wx.FONTFAMILY_DECORATIVE デコラティブ wx.FONTFAMILY_ROMAN ローマン(serif) wx.FONTFAMILY_SCRIPT ハンドライティング(手書き風) wx.FONTFAMILY_SWISS スイス(sans-serif) フォント wx.FONTFAMILY_MODERN 固定ピッチフォント wx.FONTFAMILY_TELETYPE テレタイプフォント フォントスタイル (FONTSTYLE_) は、 wx.FONTSTYLE_NORMAL ノーマル wx.FONTSTYLE_SLANT スラント wx.FONTWEIGHT_BOLD ボールド wx.FONTWEIGHT_LIGHT ライト フォントウェイトは、 wx.FONTWEIGHT_NORMAL ノーマル wx.FONTWEIGHT_LIGHT ライト wx.FONTWEIGHT_BOLD ボールド ただし、wx.DEFAULT, wx.NORMAL, wx.SWISS, wx.BOLD のように、前半の FONTFAMILY_ や FONTSTYLE_ をつけなくても、実際の定数の INT の数値が同じなので問題ないようだ。同じ定数が定義されている。検索してみると、両方見つかるが、デモなど見ても、wx.DEFAULT のように短縮した形式になっているので、短い形式で指定することにした。 次の例では、24ポイントのノーマルフォントで太字でイタリックで表示している。
TextCtrl のフォント名を指定する使用するフォントを名前で指定することもできる。その場合、 wx.Font(ポイント, ファミリー, スタイル, ウェイト , アンダーライン(T|F), フォント名) のような指定になる。アンダーラインのところで True を指定すれば、文字に下線が引かれる。False なら通常の表示。次の例は、フォントにメイリオを使って、下線を表示している例。
ちなみに、TexCtrl を駆使すれば、それなりのリッチテキストエディタが作れるはずだが、リッチテキストエディタがほんとうに作りたければ、むしろ、wx.RichTextCtrl を使った方がいいだろう。デモを見ると、こういうものがある。ただし、ちゃんとしたアプリケーションとしては仕上げられてはいないから、表示するところまでで、保存はテキスト形式になっちゃうけど。 TextCtrl 自体、まだまだネタはあるのだが、おいおい取り込むことにして、とりあえず、先に進むことにする。 お気に入りの記事を「いいね!」で応援しよう
Last updated
2015.03.08 17:07:05
コメント(0) | コメントを書く
[Python] カテゴリの最新記事
|