반응형
개요
스핀컨트롤(wx.SpinCtrl)은 텍스트컨트롤(wx.TextCtrl)과 스핀버튼(wx.SpinButton)을 합쳐놓은 위젯이다. 위,아래 화살표를 눌러 숫자 값의 크기를 조절 할 수 있고, 본문에서는 입력된 숫자가 바뀌면 창 크기가 바뀌는 예제를 구현해본다.
wx.SpinCtrl
스핀컨트롤(wx.SpinCtrl) 선언은 아래와 같으며, style 값에서 키보드 화살표 키로 숫자를 올리고 내리는 기능이 있다.
spin = wx.SpinCtrl(parent, id, value="", pos=wx.DefaultPosition,
size=wx.DefaultSize, style=0, min=0, max=100, initial=0,
name="wxSpinCtrl")
parent: 스핀컨트롤 부모 클래스
id: 위젯 id 이며 보통 -1로 자동설정한다.
value: 초기값 text string 이다.
pos: 위젯의 위치 (x,y) 좌표값이다.
size: 위젯의 크기 (x,y) 값이다.
style: 위젯 스타일을 지정한다. wx.ALIGN_LEFT 등으로 위젯 안의 텍스트 정렬상태를 조절할 수 있고, wx.SP_ARROW_KEYS로 화살표 키를 눌렀을 때 값이 변경되는 기능도 구현할 수 있다.
min, max, initial: 각각 최소, 최대, 초기값이다. int형 정수값만 가질 수 있다.
name: 위젯 이름
예제
반응형
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)
# 텍스트
txt = wx.StaticText(panel, -1, "스핀컨트롤(SpinCtrl) 예제입니다.\n숫자를 바꾸면 창 크기가 변합니다.", pos=(50,50))
# 폰트
font = wx.Font(20, wx.FONTFAMILY_MODERN, wx.NORMAL, wx.BOLD)
# 스핀컨트롤 생성 X
self.spinx = wx.SpinCtrl(panel, -1, "", (50, 100), (80,-1), style=wx.SP_ARROW_KEYS)
self.spinx.SetRange(340,600) # 값 범위
self.spinx.SetValue(400) # 초기값 설정
self.spinx.SetIncrement(20) # 구간간격 설정
# 스핀컨트롤 생성 Y
self.spiny = wx.SpinCtrl(panel, -1, "", (150, 100), (80,-1), style=wx.SP_ARROW_KEYS)
self.spiny.SetRange(260, 500) # 값 범위
self.spiny.SetValue(300) # 초기값 설정
self.spiny.SetIncrement(20) # 구간간격 설정
# 폰트 설정
self.spinx.SetFont(font)
self.spiny.SetFont(font)
self.Bind(wx.EVT_SPINCTRL, self.SpinnerAction, self.spinx)
self.Bind(wx.EVT_SPINCTRL, self.SpinnerAction, self.spiny)
def SpinnerAction(self,event):
x, y = self.spinx.GetValue(), self.spiny.GetValue()
self.SetSize(x,y)
if __name__=="__main__":
app = wx.App()
frame=Example(parent=None, id=-1)
frame.Show()
app.MainLoop()
도움되셨다면 하트(♥) 부탁드리고, 더 궁금한 사항은 댓글로 남겨주세요 :)
반응형
'wxPython' 카테고리의 다른 글
파이썬 GUI, 박스사이저 wx.BoxSizer (0) | 2023.02.25 |
---|---|
파이썬 GUI, 슬라이더 wx.Slider (0) | 2023.02.25 |
파이썬 GUI, 메시지 다이얼로그 wx.MessageDialog (0) | 2023.02.25 |
파이썬 GUI, 텍스트입력다이얼로그 wx.TextEntryDialog (0) | 2023.02.24 |
파이썬 GUI, 창 움직임 트래킹 Frame Movement Tracking (0) | 2023.02.22 |