4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

wxPythonを使ってみる (7)

Last updated at Posted at 2018-07-30

こんにちは.これから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の実行結果は下の図となります.

13.png

このように画面上はマスを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の実行結果は下の図となります.

14.png

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

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

「wxpythonを使ってみる」目次

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?