wxPythonを使ってみる (8)

こんにちは．これからwxPythonを使ってみる(8)について始めたいと思います．
対象や動作環境などのはじめに必要な情報は[wxPythonを使ってみる(1)](https://qiita.com/Kenta-Han/items/5ac4f38d518e3262905f) と同じになります．
また，今回の内容は前の7回の続きとなります．是非読んで見てください．

## 特徴
前回は，GridSizerのitem引数とproportion引数について学びました．
今回は，GridSizerのflag引数について学んで行きたいと思います．

## flag引数

#### 中央寄せ
1. wx.ALIGN_CENTER(中央)
2. wx.ALIGN_CENTER_VERTICAL(縦方向における中央)
3. wx.ALIGN_CENTER_HORIZONTAL(横方向における中央)

中央寄せで使用する定数は上の3つです．BoxSizerでは縦方向のみ有効，横方向のみ有効などの条件はありましたが，GridSizerではそういったことはありません．
window_display15.pyはflag引数に関する例のプログラムとなります．

```python3:window_display15.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'),flag=wx.ALIGN_CENTER)
			layout.Add(wx.Button(panel,wx.ID_ANY,'B03'),flag=wx.ALIGN_CENTER_VERTICAL)
			layout.Add(wx.Button(panel,wx.ID_ANY,'B04'),flag=wx.ALIGN_CENTER_HORIZONTAL)
			
			panel.SetSizer(layout)
			
			self.Show()
			
app = wx.App(False)
CustomFrame('GridSizer')
app.MainLoop()
```
window_display15.pyの実行結果の各中央寄せは下の図のような配置となります．
1. wx.ALIGN_CENTER(垂直方向および水平方向の中央へアイテムが配置される)
2. wx.ALIGN_CENTER_VERTICAL(垂直方向の中央へアイテムが配置される)
3. wx.ALIGN_CENTER_HORIZONTAL(水平方向の中央へアイテムが配置される)
<img width="395" alt="スクリーンショット 2018-08-31 15.38.56.png" src="https://qiita-image-store.s3.amazonaws.com/0/179248/45f80d38-2566-11c0-38b3-8668c8990eaf.png">

### 上下左右寄せ
1. wx.ALIGN_TOP(上寄せ)
2. wx.ALIGN_BOTTOM(下寄せ)
3. wx.ALIGN_LEFT(左寄せ)
4. wx.ALIGN_RIGHT(右寄せ)

上下左右寄せで使用する定数は上の4つです．GridSizerではスペースに余裕がある関係上，中央寄せなど併用して設定を行うことが比較的容易でうす．

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

```python3:window_display16.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,3,0,0)
			layout.Add(wx.Button(panel,wx.ID_ANY,'B01'))
			layout.Add(wx.Button(panel,wx.ID_ANY,'B02'),flag=wx.ALIGN_TOP)
			layout.Add(wx.Button(panel,wx.ID_ANY,'B03'),flag=wx.ALIGN_BOTTOM)
			layout.Add(wx.Button(panel,wx.ID_ANY,'B02'),flag=wx.ALIGN_LEFT)
			layout.Add(wx.Button(panel,wx.ID_ANY,'B03'),flag=wx.ALIGN_RIGHT)
			layout.Add(wx.Button(panel,wx.ID_ANY,'B04'),flag=wx.ALIGN_BOTTOM | wx.ALIGN_CENTER_HORIZONTAL)
			
			panel.SetSizer(layout)
			
			self.Show()
			
app = wx.App(False)
CustomFrame('GridSizer')
app.MainLoop()
```
window_display16.pyの実行結果の上下左右寄せは下の図のような配置となります．
1. wx.ALIGN_TOP(デフォルトは上寄せのため変化がない)
2. wx.ALIGN_BOTTOM(割り当てられた領域の下端へアイテムが配置される)
3. wx.ALIGN_LEFT(デフォルトは左寄せのため変化がない)
4. wx.ALIGN_RIGHT(割り当てられた領域の下端へアイテムが配置される)
<img width="398" alt="スクリーンショット 2018-08-31 15.50.43.png" src="https://qiita-image-store.s3.amazonaws.com/0/179248/e9b060a3-dc6d-c517-e552-33b7b167cc1f.png">

`wx.ALIGN_BOTTOM | wx.ALIGN_CENTER_HORIZONTAL`は下寄せかつ水平方向の中央へアイテムが配置されるとなっています．

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

### 「wxpythonを使ってみる」目次
* [wxPythonを使ってみる(1)](https://qiita.com/Kenta-Han/items/5ac4f38d518e3262905f)
* [wxPythonを使ってみる(2)](https://qiita.com/Kenta-Han/items/dfd9764aedd64f9f92be)
* [wxPythonを使ってみる(3)](https://qiita.com/Kenta-Han/items/a7a58ad3cf5ae1f67625)
* [wxPythonを使ってみる(4)](https://qiita.com/Kenta-Han/items/89d11908d49c34976071)
* [wxPythonを使ってみる(5)](https://qiita.com/Kenta-Han/items/9b8025b7accae5fa770d)
* [wxPythonを使ってみる(6)](https://qiita.com/Kenta-Han/items/7704a7f39bee882bfd29)
* [wxPythonを使ってみる(7)](https://qiita.com/Kenta-Han/items/c11c1c70021e05c49138)