[출처 : http://withrobot.tistory.com/135]
슬라이더(Slider)는 특정 숫자를 입력하려고 할 때 텍스트 기반으로 입력받지 않고 GUI 형태로 받을 때 유용하다. wxPython에서는 wx.Slider() 함수로 제공된다.
Slider API reference: http://www.wxpython.org/docs/api/wx.Slider-class.html
슬라이더는 입력 파라미터가 무척 많다. 하나씩 살펴보자.
Create(self, parent, id=-1, value=0, minValue=0, maxValue=100, pos=DefaultPosition,size=DefaultSize, style=SL_HORIZONTAL, validator=DefaultValidator,name=SliderNameStr)
value는 슬라이더를 처음 표시할때 시작할 값이다.
min과 max는 슬라이더의 최소치와 최대치 값을 지정하는 것이고, pos, size 역시 포인트 단위로 프레임에서 위치 및 크기를 지정하는 용도의 파라미터이다.
가장 중요한 부분이 style 파라미터인데, 이 인자을 어떻게 설정하느냐에 따라서 다양한 슬라이더를 만들어 낼 수 있다. 들어갈 수 있는 인자를 정리해 보자.
wx.SL_HORIZONTAL: 수평 슬라이더
wx.SL_VERTICAL: 수직 슬라이더
wx.SL_AUTOTICKS: 슬라이더에 눈금 표시
wx.SL_LABELS : 슬라이더 눈금 위에 숫자 표시
wx.SL_LEFT: vertical 슬라이더에서 눈금을 슬라이더 왼쪽에 표시
wx.SL_RIGHT: vertical 슬라이더에서 눈금을 슬라이더 오른쪽에 표시
wx.SL_TOP: horizontal 슬라이더에서 눈금을 슬라이더 윗쪽에 표시
우선 가장 간단한 SL_HORIZONTAL 스타일만 적용하여 슬라이더를 하나 만들자.
#!/usr/bin/env python
"""10-1. Slider """
# http://withrobot.tistory.com
# 2007.11.26
import wx
class Frame(wx.Frame):
def __init__(self, parent=None, id=-1, title='Slider'):
wx.Frame.__init__(self, parent, id, title, size=(300,300), pos=(100,100) )
panel = wx.Panel(self)
mySlider = wx.Slider(panel,100,25,1,100,pos=(10,10),size=(250,-1),style=wx.SL_HORIZONTAL)
class App(wx.App):
def OnInit(self):
self.frame = Frame()
self.frame.Show()
return True
def main():
app = App()
app.MainLoop()
if __name__ == '__main__':
main()
자, 위 슬라이더에 스타일을 적용해 보자

mySlider = wx.Slider(panel,100,25,1,100,pos=(10,10),size=(250,-1),style=wx.SL_HORIZONTAL|wx.SL_AUTOTICKS |wx.SL_LABELS)
Slider API reference: http://www.wxpython.org/docs/api/wx.Slider-class.html
슬라이더는 입력 파라미터가 무척 많다. 하나씩 살펴보자.
Create(self, parent, id=-1, value=0, minValue=0, maxValue=100, pos=DefaultPosition,size=DefaultSize, style=SL_HORIZONTAL, validator=DefaultValidator,name=SliderNameStr)
value는 슬라이더를 처음 표시할때 시작할 값이다.
min과 max는 슬라이더의 최소치와 최대치 값을 지정하는 것이고, pos, size 역시 포인트 단위로 프레임에서 위치 및 크기를 지정하는 용도의 파라미터이다.
가장 중요한 부분이 style 파라미터인데, 이 인자을 어떻게 설정하느냐에 따라서 다양한 슬라이더를 만들어 낼 수 있다. 들어갈 수 있는 인자를 정리해 보자.
wx.SL_HORIZONTAL: 수평 슬라이더
wx.SL_VERTICAL: 수직 슬라이더
wx.SL_AUTOTICKS: 슬라이더에 눈금 표시
wx.SL_LABELS : 슬라이더 눈금 위에 숫자 표시
wx.SL_LEFT: vertical 슬라이더에서 눈금을 슬라이더 왼쪽에 표시
wx.SL_RIGHT: vertical 슬라이더에서 눈금을 슬라이더 오른쪽에 표시
wx.SL_TOP: horizontal 슬라이더에서 눈금을 슬라이더 윗쪽에 표시
우선 가장 간단한 SL_HORIZONTAL 스타일만 적용하여 슬라이더를 하나 만들자.
Horizontal slider
"""10-1. Slider """
# http://withrobot.tistory.com
# 2007.11.26
import wx
class Frame(wx.Frame):
def __init__(self, parent=None, id=-1, title='Slider'):
wx.Frame.__init__(self, parent, id, title, size=(300,300), pos=(100,100) )
panel = wx.Panel(self)
mySlider = wx.Slider(panel,100,25,1,100,pos=(10,10),size=(250,-1),style=wx.SL_HORIZONTAL)
class App(wx.App):
def OnInit(self):
self.frame = Frame()
self.frame.Show()
return True
def main():
app = App()
app.MainLoop()
if __name__ == '__main__':
main()
자, 위 슬라이더에 스타일을 적용해 보자
AUTOTICK과 LABELS 스타일을 적용
mySlider = wx.Slider(panel,100,25,1,100,pos=(10,10),size=(250,-1),style=wx.SL_HORIZONTAL|wx.SL_AUTOTICKS |wx.SL_LABELS)