본문 바로가기

wxPython

파이썬 GUI, 슬라이더 wx.Slider

반응형

 

개요 

    마우스 좌클릭으로 숫자 값을 조절할 수 있는 슬라이더(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()

 

 

 

 

 

    도움되셨다면 하트(♥) 부탁드리고, 더 궁금한 사항은 댓글로 남겨주세요 :) 

 

반응형