Wxpython-wx-statictext-class

提供:Dev Guides
移動先:案内検索

wxPython-StaticTextクラス

GUIインターフェースのもう1つの重要な要素は、ラベル(1行以上の読み取り専用テキスト)です。 通常、別のウィジェットの識別子または情報文字列としてフレームに配置されます。

wxPythonでは、* wx.StaticTextクラス*オブジェクトは、そのような読み取り専用テキストを保持するコントロールを提供します。 イベントを生成しないため、パッシブコントロールと呼ぶことができます。 Wx.StaticTextクラスのコンストラクタは、次の通常のパラメータが必要です-

Wx.StaticText(parent, id, label, position, size, style)

定義済みのスタイル列挙子は-

wx.ALIGN_LEFT

サイズ内のラベルの配置を制御します

wx.ALIGN_RIGHT

wx.ALIGN_CENTER

wx.ST_NO_AUTORESIZE

ラベルの自動サイズ変更を防止します

wx.ST_ELLIPSIZE_START

省略記号(…)は、テキストのサイズがラベルのサイズよりも大きい場合、先頭、中央、または末尾に表示されます

wx.ST_ELLIPSIZE_MIDDLE

wx.ST_ELLIPSIZE_END

wx.StaticTextクラスの次のメソッドも便利です-

以下に、wx.StaticTextの最も一般的に使用されるメソッドを示します

S.N. Methods & Description
1

SetLabel()

オブジェクトのラベルをプログラムで設定します

2

GetLabel()

オブジェクトのラベルを返します

3

SetForeGroundColour()

ラベルのテキストの色を設定します

4

SetBackGroundColour()

ラベルの背景を設定します

5

Wrap()

サイズ内に収まらない場合、ラベルのテキストを折り返します。

StaticTextクラスの上記の機能を次の例に示します。 3つのStaticTextオブジェクトが垂直ボックスサイザーに配置されます。

最初のオブジェクトには、中央揃えの複数行テキストがあります。 2番目のラベルのテキストは、200ピクセルを超えて折り返すように設定されています。 3番目のラベルは、テキストの中央に省略記号(…)を示しています。

ラベルのフォントを設定するために、最初にフォントオブジェクトが作成されます。

Wx.Font(pointsize, fontfamily, fontstyle, fontweight)

Fontfamilyパラメータは次の値を取ります-

以下は、Fontfamilyの最も一般的に使用されるパラメーターです。

S.N. Parameters & Description
1

wx.FONTFAMILY_DEFAULT

デフォルトのフォントを選択します

2

wx.FONTFAMILY_DECORATIVE

装飾フォントを選択します

3

wx.FONTFAMILY_ROMAN

正式なセリフフォントを選択します

4

wx.FONTFAMILY_SCRIPT

手書きフォントを選択します

5

wx.FONTFAMILY_SWISS

sans-serifフォントを選択します

6

wx.FONTFAMILY_MODERN

固定ピッチフォントを選択します

7

wx.FONTFAMILY_TELETYPE

テレタイプ(モノスペース)フォントを選択します

FontStyleパラメータの列挙は-

S.N. Parameters & Description
1

Wx.FONTSTYLE_NORMAL

フォントは傾斜なしで描画されます

2

wx.FONTSTYLE_ITALIC

フォントは斜体スタイルで傾斜しています

3

wx.FONTSTYLE_SLANT

フォントは斜めですが、ローマ風です

FontWeightパラメータは-

S.N. Parameters & Description
1

Wx.FONTWEIGHT_NORMAL

通常のフォント

2

wx.FONTWEIGHT_LIGHT

ライトフォント

3

wx.FONTWEIGHT_BOLD

太字フォント

完全なコードリストは次のとおりです-

import wx

class Mywin(wx.Frame):
   def __init__(self, parent, title):
      super(Mywin, self).__init__(parent, title = title,size = (600,200))
      panel = wx.Panel(self)
      box = wx.BoxSizer(wx.VERTICAL)
      lbl = wx.StaticText(panel,-1,style = wx.ALIGN_CENTER)

      txt1 = "Python GUI development"
      txt2 = "using wxPython"
      txt3 = " Python port of wxWidget "
      txt = txt1+"\n"+txt2+"\n"+txt3

      font = wx.Font(18, wx.ROMAN, wx.ITALIC, wx.NORMAL)
      lbl.SetFont(font)
      lbl.SetLabel(txt)

      box.Add(lbl,0,wx.ALIGN_CENTER)
      lblwrap = wx.StaticText(panel,-1,style = wx.ALIGN_RIGHT)
      txt = txt1+txt2+txt3

      lblwrap.SetLabel(txt)
      lblwrap.Wrap(200)
      box.Add(lblwrap,0,wx.ALIGN_LEFT)

      lbl1 = wx.StaticText(panel,-1, style = wx.ALIGN_LEFT | wx.ST_ELLIPSIZE_MIDDLE)
      lbl1.SetLabel(txt)
      lbl1.SetForegroundColour((255,0,0))
      lbl1.SetBackgroundColour((0,0,0))

      font = self.GetFont()
      font.SetPointSize(20)
      lbl1.SetFont(font)

      box.Add(lbl1,0,wx.ALIGN_LEFT)
      panel.SetSizer(box)
      self.Centre()
      self.Show()

app = wx.App()
Mywin(None,  'StaticText demo')
app.MainLoop()

上記のコードは、次の出力を生成します-

静的テキスト出力