[출처 : http://withrobot.tistory.com/135]


슬라이더(Slider)는 특정 숫자를 입력하려고 할 때 텍스트 기반으로 입력받지 않고 GUI 형태로 받을 때 유용하다. wxPython에서는 wx.Slider() 함수로 제공된다.

Slider API reference: http://www.wxpython.org/docs/api/wx.Slider-class.html

슬라이더는 입력 파라미터가 무척 많다. 하나씩 살펴보자.
Create(selfparentid=-1value=0minValue=0maxValue=100pos=DefaultPosition,size=DefaultSizestyle=SL_HORIZONTALvalidator=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

#!/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()


자, 위 슬라이더에 스타일을 적용해 보자
사용자 삽입 이미지

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)

+ Recent posts