リンク

2016年4月21日木曜日

pythonでGUIツールを作る ~スタティックテキスト(ラベル)~

pythonでGUIフォームを作成するためのツールキットはいくつか存在します。
中でも「wxPython」はプリインストールされている「tkinter」よりも使い勝手・自由度が高く、人気があるようです。

当ブログではそんな「wxPython」を用いてpythonでGUIツールを作成する方法を少しずつご紹介していきます。

- - - - - - - - - - - - - - - - - - - - - - - - - -

今回は、文字列を表示させるためのシンプルなウィジットである”スタティックテキスト“(別の言語では”ラベル“という名称の場合もある)をご紹介します。

# -*- coding: utf-8 -*-

import wx

app = wx.App()

frame = wx.Frame(None, -1, u'タイトル', size=(200, 200))
panel = wx.Panel(frame, -1)

# スタティックテキストの設置
text1 = wx.StaticText(panel, -1, u'テキストです')

frame.Show()
app.MainLoop()
<結果>
上記スクリプト内で、過去に解説した内容については省略致します。 ご確認いただきたい場合は、~基礎編~をご覧ください。

続いて詳細を見ていきます。


~~詳細~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# スタティックテキストの設置
text1 = wx.StaticText(panel, -1, u'テキストです')
スタティックテキストを作成するには、wx.StaticTextクラスを使用します。
text1は、引数に(親ウィジット、識別子、表示する文字列)を指定しており、これが基本型となります。
また、スタイルを指定することで、文字列の表示位置や枠線の種類を指定することができます。

# 1.左寄せ(デフォルト)
text1 = wx.StaticText(panel, -1, u'テキストです', style=wx.ALIGN_LEFT)

# 2.中央寄せ
text1 = wx.StaticText(panel, -1, u'テキストです', style=wx.ALIGN_CENTER)

# 3.右寄せ
text1 = wx.StaticText(panel, -1, u'テキストです', style=wx.ALIGN_RIGHT)

# 4.枠線を表示
text1 = wx.StaticText(panel, -1, u'テキストです', style=wx.SIMPLE_BORDER)

# 5.二重線を表示
text1 = wx.StaticText(panel, -1, u'テキストです', style=wx.DOUBLE_BORDER)

# 6.凹んでいるように見える枠線を表示
text1 = wx.StaticText(panel, -1, u'テキストです', style=wx.SUNKEN_BORDER)

# 7.盛り上がっているように見える枠線を表示
text1 = wx.StaticText(panel, -1, u'テキストです', style=wx.RAISED_BORDER)

# 8.枠線を表示しない(デフォルト)
text1 = wx.StaticText(panel, -1, u'テキストです', style=wx.NO_BORDER)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

ここからは、wx.StaticTextクラスでよく使用する主な関数をご紹介します。
# 文字列を変更する
text1.SetLabel(u'この文字列に変更')

# 文字色を変更する
text1.SetForegroundColour("red")

# 背景色を変更する
text1.SetBackgroundColour("red")

# 非表示にする
text1.Hide()

# 表示する
text1.Show()

# 文字列を取得する
text1.GetLabel()

# ツールチップを設定する
text1.SetToolTipString(u'これがツールチップ')
##  マウスポインタをスタティックテキスト上に持ってくると表示される
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 スタティックテキストは文字列を表示させるだけのシンプルなものですが、意外と使用頻度は高いです。 

覚えておいて損はないと思いますので、ぜひ参考にしてください。

==================================================================
 環 境:Python 2.7.9 / Windows7 ================================================================== 
この記事が参考になりましたら、シェア・フォロー・おすすめしていただけると励みになります! \(^o^)/
==================================================================

3 件のコメント:

  1. 後から背景色や文字色を取得する方法はありますか?

    返信削除
    返信
    1. コメントありがとうございます。
      背景色はtext1.GetBackgroundColour()、
      文字色はtext1.GetForegroundColour() でそれぞれ取得することができます(^^)

      削除
  2. 返信ありがとうございます。SetXxxxx()でやったものは、GetXxxx()で取得できると分かりました。

    返信削除