Python入門から応用までの学習サイト


FlexGridSizer

前項で紹介したGridSizerをより柔軟な形にしたのが、FlexGridSizerとなります。GridSizerは配置領域が全て同じサイズとなってしまうのに対し、FlexGridSizerでは行指定、列指定でサイズの変更が可能です。もちろん全てが同じサイズの方が都合の良い場合もあるので、用途によって使い分けましょう。配置領域の使い方は、GridSizerとほぼ一緒となりますので、詳細は使用方法はGridSizerページをご確認ください。本項では相違点のみ解説します。

25行目「AddGrowableRow」の引数にサイズを変更したい行インデックスを指定しています。26行目の「AddGrowableCol」では列を指定しています。

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

import wx

application = wx.App()
frame = wx.Frame(None, wx.ID_ANY, u"テストフレーム", size=(300,300))

panel = wx.Panel(frame, wx.ID_ANY)
panel.SetBackgroundColour("#AFAFAF")

button_1 = wx.Button(panel, wx.ID_ANY, u"1")
button_2 = wx.Button(panel, wx.ID_ANY, u"2")
button_3 = wx.Button(panel, wx.ID_ANY, u"3")
button_4 = wx.Button(panel, wx.ID_ANY, u"4")
button_5 = wx.Button(panel, wx.ID_ANY, u"5")
button_6 = wx.Button(panel, wx.ID_ANY, u"6")

layout = wx.FlexGridSizer(3, 2)
layout.Add(button_1, flag=wx.GROW)
layout.Add(button_2, flag=wx.GROW)
layout.Add(button_3, flag=wx.GROW)
layout.Add(button_4, flag=wx.GROW)
layout.Add(button_5, flag=wx.GROW)
layout.Add(button_6, flag=wx.GROW)
layout.AddGrowableRow(0)
layout.AddGrowableCol(1)

panel.SetSizer(layout)

frame.Show()
application.MainLoop()

--実行結果--

1行目と2列目をサイズ変更するように指定しました。このサンプルでは「3」と「5」のボタンのみ通常のサイズとなります。

wxPython_flexgridsizer_01




Python
スタートブック


入門 Python 3


Effective
Python


退屈なことは
Pythonにやらせよう

 
 
 

タブ化によってレイアウトの幅が広がります!

▶GUI:Notebook



確かな力が身につく
Python「超」入門




P  R