Edited at

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を使ってみる」目次