본문 바로가기

반응형

wxPython

파이썬 GUI, 박스사이저 wx.BoxSizer 개요 위젯이 많아지면 위젯끼리 상대적으로 어떻게 배치하는가가 중요해진다. 이렇게 위젯의 배치를 도와주는 클래스들을 wxPython에서는 컨테이너(Container)라고 부른다. 컨테이너에는 박스사이저(wx.BoxSizer)외에도 그리드사이저(wx.GridSizer), 플렉시그리드사이저(wx.FlexGridSizer) 등이 있으며 이 글에서는 가장 간단한 컨테이너인 박스사이저에 대해 알아본다. wx.BoxSizer 박스사이저(wx.BoxSizer)는 가장 단순한 컨테이너이다. 기본적으로 가로방향 배열(Horizontal)과 세로방향 배열(Vertical) 두 가지를 지원한다. 사용법은 아래와 같이 먼저 박스사이저의 타입을 지정하여 선언해 준 뒤, hsizer = wx.BoxSizer(wx.HORIZONTA.. 더보기
파이썬 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: 슬라이더 초기값 정수이다. minV.. 더보기
파이썬 GUI, 스핀컨트롤 wx.SpinCtrl 개요 스핀컨트롤(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.. 더보기
파이썬 GUI, 메시지 다이얼로그 wx.MessageDialog 개요 메시지다이얼로그(wx.MessageDialog)를 출력해보자. 대화상자는 wx.OK, wx.CANCEL 버튼이 있고, 사용자의 버튼 선택에 따라 프레임을 스크린 중앙에 옮겨주는 기능을 구현한다. 예제는 프로그램을 켜고 5초가 지나면 대화상자가 뜬다. OK를 클릭하면 화면이 스크린 중앙으로 옮겨진다. wx.MessageDialog 메시지다이얼로그(wx.MessageDialog)는 가장 간단한 wxPython 대화상자 위젯이다. 구현 방식에 따라 알림, 주의, 확인, 취소 등의 기능을 수행한다. modal = wx.MessageDialog(parent, message, caption="", style=wx.OK|wx.CENTRE, pos=wx.DefaultPosition) answer = modal.S.. 더보기
파이썬 GUI, 텍스트입력다이얼로그 wx.TextEntryDialog 개요 사용자로부터 한 줄 짜리 텍스트를 입력받는 텍스트입력다이얼로그(wx.TextEntryDialog)를 제작해보자. 다이얼로그는 대화상자 형태로 별도의 창이 열리게 되고 텍스트 입력란과 OK 혹은 Cancel 버튼을 놓을 수 있다. wx.TextEntryDialog 텍스트입력다이얼로그(wx.TextEntryDialog)는 가장 간단한 텍스트 입력 양식을 가진 대화상자형 위젯이다. 대부분의 다른 wxPython 위젯들과 마찬가지로 선언 양식은 아래와 같고, style의 경우 버튼(wx.Button)에 대한 스타일(wx.OK, wx.CANCEL)과 텍스트컨트롤(wx.TextCtrl)에 대한 스타일을 지정할 수 있다. modal = wx.TextEntryDialog(parent, message, captio.. 더보기
파이썬 GUI, 창 움직임 트래킹 Frame Movement Tracking 개요 경우에 따라 창의 현재 위치나 크기를 알아야 할 때가 있다. 이 경우 어떤 방식으로 값을 얻어오는지 예제를 통해 알아본다. 추가로 키보드 조작을 통해 창 크기를 변경하는 방법도 알아본다. wx.EVT_MOVE 창이 움직일때 발생하는 이벤트이다. 아래와 같이 바인딩하여 움직임을 감지한다. self는 wx.Frame 객체이며, 프레임 이동 이벤트가 감지 되면 self.OnMove 함수가 작동한다. self.Bind(wx.EVT_MOVE, self.OnMove) 한편, 창이 움직일 때 좌표 값을 얻어오는 함수는 GetPosition() 이고, 창의 크기는 GetSize()로 얻는다. wx.EVT_CHAR_HOOK 키보드를 누를 때 발생하는 이벤트이다. 해당 이벤트로 실행된 함수에서 event.GetKey.. 더보기
파이썬 GUI, 싱글초이스다이얼로그 wx.SingleChoiceDialog 개요 선택지를 여러 개 주고 하나만 선택하게하는 싱글초이스다이얼로그(wx.SingleChoiceDialog)를 구현해보자. wx.SingleChoiceDialog 싱글초이스다이얼로그(wx.SingleChoiceDialog)는 이름에서 알 수 있듯이 대화상자(Dialog) 형태의 위젯이다. 여러 개의 문자열 선택지로 구성되어 있으며, 그 중 하나만 유저가 선택할 수 있다. single_cd = wx.SingleChoiceDialog(parent, message, caption, choices, style=0, pos=wx.DefaultPosition) parent: 싱글초이스 다이얼로그가 놓이는 부모 오브젝트, 보통 None으로 둔다. message: 대화상자 상단에 놓이는 텍스트 caption: 대화상자.. 더보기
파이썬 GUI, 체크박스 생성 후 이벤트 연결하기 개요 체크박스(wx.CheckBox)는 ON / OFF가 가능한 라벨 텍스트 박스이다. 옵션에 따라 ON / OFF 외에도 제 3의 상태 (undetermined state)를 가질 수도 있다. 체크박스의 상태에 따라 텍스트가 변하는 간단한 어플을 구현해보자. wx.CheckBox 체크박스(wx.CheckBox)는 버튼(wx.Button)과 유사하게 아래와 같이 정의된다. 기본적으로 부모 객체와 id, 그리고 라벨 정도가 필요하고, 필요에 따라 컨트롤 포지션이나 사이즈 등도 옵션으로 변경이 가능하다. chkbox = wx.CheckBox(parent, id=wx.ID_ANY, label="체크박스라벨", pos=wx.DefaultPosition, size=wx.DefaultSize, style=0, va.. 더보기

반응형