반응형
개요
박스사이저(wx.BoxSizer) 추가예제이다. proportion, wx.EXPAND, wx.ALIGN_CENTER, wx.ALL, border를 활용하여 위젯이 어떻게 배치되는지 확인한다. proportion과 wx.EXPAND는 여기(https://hexa-coding.tistory.com/20)를, 박스사이저 기본예제는 여기(https://hexa-coding.tistory.com/16)를 참조하자.
wx.ALIGN_CENTER
flag 속성에서 wx.ALIGN_CENTER는 수직박스사이저 기준으로 위젯을 수평방향의 중앙에 놓는 옵션이다. (수평박스사이저에서는 수직방향 중간이 된다.)
wx.ALL, 그리고 border 속성
flag의 wx.ALL은 상,하,좌,우 모든 경계면의 두께를 border 속성의 값만큼 설정하겠다는 뜻이다. 즉, flag=wx.ALL, border=20 이면 상하좌우 모두 박스사이저와 위젯의 경계사이 두께가 20픽셀이 된다. wx.ALL 외에도 border 두께는 wx.LEFT, wx.RIGHT, wx.TOP, wx.BOTTOM 으로 부분별로 지정할 수도 있다.
예제
아래 예제는 박스사이저 Add() 메소드의 여러 속성값을 동시에 지정하여 그 특성을 확인하는 예제이다. 예제를 통해 wx.ALL과 border 그리고 wx.ALIGN_CENTER에 대해 알아보자.
반응형
import wx
class Example(wx.Frame):
def __init__(self, parent, id):
wx.Frame.__init__(self,parent,id,'Example Window', size=(400,300))
panel=wx.Panel(self)
# 박스사이저
bsizer = wx.BoxSizer(wx.VERTICAL)
# 상단 텍스트
txt = wx.StaticText(panel, -1, "VERTICAL BOXSIZER EXAMPLE2", size=(-1,-1), style=wx.ALIGN_CENTER)
# 버튼 1,2,3
btn1 = wx.Button(panel, -1, "[Button1]\nProportion=1\nwx.EXPAND")
btn2 = wx.Button(panel, -1, "[Button2]\nProportion=2\nwx.EXPAND")
btn3 = wx.Button(panel, -1, "[Button3]\nProportion=1\nwx.EXPAND")
# 박스사이저에 버튼의 Proportion을 1,2,1로 각각 다르게 할당
bsizer.Add(txt, proportion=0, flag=wx.EXPAND)
bsizer.Add(btn1, proportion=1, flag=wx.EXPAND)
bsizer.Add(btn2, proportion=2, flag=wx.EXPAND)
bsizer.Add(btn3, proportion=1, flag=wx.EXPAND)
# 패널에 박스사이저 할당
panel.SetSizer(bsizer)
if __name__=="__main__":
app = wx.App()
frame=Example(parent=None, id=-1)
frame.Show()
frame.Center()
app.MainLoop()
도움되셨다면 하트(♥) 부탁드리고, 더 궁금한 사항은 댓글로 남겨주세요 :)
반응형
'wxPython' 카테고리의 다른 글
파이썬 GUI, 기본 색상표 wx.ColourDatabase (0) | 2023.02.26 |
---|---|
파이썬 GUI, 그리드사이저 wx.GridSizer (0) | 2023.02.26 |
파이썬 GUI, 박스사이저 추가예제2 wx.BoxSizer (0) | 2023.02.26 |
파이썬 GUI, 라디오박스 wx.RadioBox (0) | 2023.02.25 |
파이썬 GUI, 라디오버튼 wx.RadioButton (0) | 2023.02.25 |