반응형
개요
마우스 좌클릭으로 숫자 값을 조절할 수 있는 슬라이더(wx.Slider)를 만들어본다. 슬라이더 값이 변하면 글자 크기가 바뀌는 예제로 이벤트 처리도 수행해보자.
wx.Slider
대부분의 wxPython 위젯과 마찬가지로 선언방식은 아래와 같다. 다른 점이 있다면, 슬라이더에 필요한 숫자 min, max 값이 추가되었다.
slider = wx.Slider(parent, id, value=0, minValue=0, maxValue=100,
pos=wx.DefaultPosition, size=wx.DefaultSize, style=0, name="")
parent: 슬라이더가 담긴 부모 클래스
id: 슬라이더 id, 보통 -1로 두어 자동지정하게 한다.
value: 슬라이더 초기값 정수이다.
minValue: 슬라이더에서 지정 가능한 최소값 정수이다.
maxValue: 슬라이더에서 지정 가능한 최대값 정수이다.
pos, size: 각각 슬라이더의 위치와 크기 (x,y) 픽셀값이다.
style: 슬라이더 스타일 지정. wx.SL_HORIZONTAL이 기본값이며, 세로방향 슬라이더도 가능하다(wx.SL_VERTICAL). 이 외에도 슬라이더 눈금(wx.SL_AUTOTICKS)과 값 레이블(wx.SL_LABELS) 표시도 가능하다.
name: 슬라이더 이름 string 값이다.
예제
슬라이더 조절을 통해 글자 크기가 변경되는 예제이다.
반응형
import wx
class SliderWindow(wx.Frame):
def __init__(self, parent, id):
wx.Frame.__init__(self,parent,id,'Slider Window', size=(330,330))
panel=wx.Panel(self)
# 텍스트
txt = wx.StaticText(panel, -1, "슬라이더를 움직여보세요.\n글자크기가 변합니다.", pos=(30,30), size=(200,-1))
self.txt2 = wx.StaticText(panel, -1, "글자크기", pos=(30, 170), size=(-1,-1))
# 폰트
self.font = wx.Font(20, wx.FONTFAMILY_MODERN, wx.NORMAL, wx.BOLD)
# 슬라이더 생성
self.slider= wx.Slider(panel, -1, value=10, minValue=10, maxValue=50,
pos=(30,90), size=(250,-1), style=wx.SL_AUTOTICKS|wx.SL_LABELS)
# 슬라이더 눈금 간격
self.slider.SetTickFreq(1)
self.Bind(wx.EVT_SLIDER, self.OnSliderChanged,self.slider)
# 슬라이더 값이 변하면 호출
def OnSliderChanged(self, event):
# 슬라이더 값 만큼 폰트사이즈 변경
self.font.SetPointSize(self.slider.GetValue())
self.txt2.SetFont(self.font)
if __name__=="__main__":
app = wx.App()
frame=SliderWindow(parent=None, id=-1)
frame.Show()
app.MainLoop()
도움되셨다면 하트(♥) 부탁드리고, 더 궁금한 사항은 댓글로 남겨주세요 :)
반응형
'wxPython' 카테고리의 다른 글
파이썬 GUI, 진행률 바 wx.Gauge (2) | 2023.02.25 |
---|---|
파이썬 GUI, 박스사이저 wx.BoxSizer (0) | 2023.02.25 |
파이썬 GUI, 스핀컨트롤 wx.SpinCtrl (0) | 2023.02.25 |
파이썬 GUI, 메시지 다이얼로그 wx.MessageDialog (0) | 2023.02.25 |
파이썬 GUI, 텍스트입력다이얼로그 wx.TextEntryDialog (0) | 2023.02.24 |