wxPythonを使ってみる (7)


こんにちは.これからwxPythonを使ってみる(7)について始めたいと思います.
対象や動作環境などのはじめに必要な情報はwxPythonを使ってみる(1) と同じになります.
また,今回の内容は前の6回の続きとなります.是非読んで見てください.

特徴

前回は,GridSizerの主な概要について学びました.
今回は,GridSizerのitem引数とproportion引数について学んで行きたいと思います.

item引数

  1. wx.Button などwx.Window を継承しているオブジェクト
  2. wx.BoxSizer などwx.Sizer を継承しているオブジェクト
  3. wx.Sizer オブジェクト

上の3つのオブジェクトの1と2はBoxSizerとそれほど差がないですが,3が少し変わります.GridSizerはコンテナー領域をすべて使用して分割を行うため,マスを1つ飛ばすために利用する,というイメージに近いです.
window_display13.pyはitem引数に関する例のプログラムとなります.

window_display13.py
import wx

class CustomFrame(wx.Frame):
        def __init__(self,title):
            wx.Frame.__init__(self,None,-1,title,size=(400,400))

            panel = wx.Panel(self)

            layout = wx.GridSizer(2,2,0,0)
            layout.Add(wx.Button(panel,wx.ID_ANY,'B01'),flag=wx.EXPAND)
            layout.Add(wx.Button(panel,wx.ID_ANY,'B02'),flag=wx.EXPAND)
            layout.Add(wx.Size(0,0))
            layout.Add(wx.Button(panel,wx.ID_ANY,'B03'),flag=wx.EXPAND)

            panel.SetSizer(layout)

            self.Show()

app = wx.App(False)
CustomFrame('GridSizer')
app.MainLoop()

window_display13.pyの実行結果は下の図となります.

このように画面上はマスを1つ(左下のマス)飛ばして配置するような形となります.

proportion引数

proportionは配置されたアイテムのコンテナー領域内煮しめる割合を制御しますが,BoxSizerおよびBoxSizerから派生したSizerでのみ利用可能な引数です.GridSizerではこの引数を利用しても画面上に変化はありません.

window_display14.pyはproportion引数に関する例のプログラムとなります.

window_display14.py
import wx

class CustomFrame(wx.Frame):
        def __init__(self,title):
            wx.Frame.__init__(self,None,-1,title,size=(400,400))

            panel = wx.Panel(self)

            layout = wx.GridSizer(2,2,0,0)
            layout.Add(wx.Button(panel,wx.ID_ANY,'B01'))
            layout.Add(wx.Button(panel,wx.ID_ANY,'B02'),proportion=1)
            layout.Add(wx.Button(panel,wx.ID_ANY,'B03'),flag=wx.EXPAND)
            layout.Add(wx.Button(panel,wx.ID_ANY,'B04'),proportion=1,flag=wx.EXPAND)

            panel.SetSizer(layout)

            self.Show()

app = wx.App(False)
CustomFrame('GridSizer')
app.MainLoop()

window_display14.pyの実行結果は下の図となります.

このようにproportionを設定してもアイテムに変化がありません.

今回のwxPythonを使ってみる(7)は以上で終わります.
読んでいただいてありがとうございます.

「wxpythonを使ってみる」目次