본문 바로가기

반응형

전체 글

파이썬 GUI, 그리드사이저 wx.GridSizer 개요 그리드사이저(wx.GridSizer)는 내부에 배열된 위젯들의 크기가 모두 동일한 2차원 바둑판 배열의 컨테이너이다. 그리드 사이저에 버튼을 나열하고 랜덤으로 버튼 배경색을 바꾸는 예제를 수행해보자. wx.GridSizer 그리드 사이저(wx.GridSizer)를 선언하는 방법은 아래와 같이 네 가지가 있다. 선언이 직관적이어서 별도의 설명은 생략하겠다. GridSizer(cols, vgap, hgap) GridSizer(cols, gap=Size(0,0)) GridSizer(rows, cols, vgap, hgap) GridSizer(rows, cols, gap) rows: 행의 수 cols: 열의 수 vgap: 수직 간격 hgap: 수평 간격 gap: 수직, 수평 간격 모두 예제 아래 예제는 5.. 더보기
파이썬 GUI, 박스사이저 추가예제3 wx.BoxSizer 개요 박스사이저(wx.BoxSizer) 추가예제이다. proportion, wx.EXPAND, wx.ALIGN_CENTER, wx.ALL, border를 활용하여 위젯이 어떻게 배치되는지 확인한다. proportion과 wx.EXPAND는 여기(https://hexa-coding.tistory.com/20)를, 박스사이저 기본예제는 여기(https://hexa-coding.tistory.com/16)를 참조하자. wx.ALIGN_CENTER flag 속성에서 wx.ALIGN_CENTER는 수직박스사이저 기준으로 위젯을 수평방향의 중앙에 놓는 옵션이다. (수평박스사이저에서는 수직방향 중간이 된다.) wx.ALL, 그리고 border 속성 flag의 wx.ALL은 상,하,좌,우 모든 경계면의 두께를 bord.. 더보기
파이썬 GUI, 박스사이저 추가예제2 wx.BoxSizer 개요 박스사이저(wx.BoxSizer) 추가 예제를 다룬다. 박스사이저 Add() 메소드의 속성값인 proportion에 대해 알아보고, flag의 wx.EXPAND에 대해서도 알아보자. 박스사이저의 기본적인 내용에 대해서는 이전 포스팅(https://hexa-coding.tistory.com/16)을 참조하자. wx.BoxSizer.Add() - proportion 속성 박스사이저에 위젯을 할당할 때 proportion 속성값이 있다. 이 값은 박스사이저 내에서 위젯이 차지하는 크기적 비율값을 의미한다. 박스사이저가 수평 박스사이저라면, proportion 값은 x 방향 길이값 비율을 의미하고, 반대로 수직 박스사이저라면 y 방향 길이값을 의미한다. proportion 값은 0, 1, 2, 3, ..... 더보기
파이썬 GUI, 라디오박스 wx.RadioBox 개요 라디오박스(wx.RadioBox)는 라디오버튼(wx.RadioButton)을 그룹화 한 형태의 위젯이다. 라디오버튼보다 훨씬 직관적이고 코드가 간결해지는 장점이 있다. 개요 라디오박스 선언은 아래와 같다. 라디오 버튼과 다른 점은 choices, majorDimension, style 옵션일 것이다. 라디오박스에서는 이들이 유기적으로 연결되어 있는데, 먼저 style에서 행을 기준으로 나열할지 열을 기준으로 나열할지를 결정한다. 그 다음 majorDimension에서 행 혹은 열을 몇 개로 나열할 것인지 정한 뒤, choices에 있는 아이템 수 기준으로 최종 배치가 결정된다. choices = ["choice1", "choice2", "choice3", "choice4"] radiobox = wx.. 더보기
파이썬 GUI, 라디오버튼 wx.RadioButton 개요 라디오버튼(wx.RadioButton)은 옵션 선택을 위한 문자열과 동그란 버튼으로 이루어진 위젯이다. 보통 단독으로는 쓰지 않고, 옵션 수에 맞게 여러 개의 라디오버튼을 하나의 그룹으로 사용한다. 예제를 통해 알아보자. wx.RadioButton 라디오버튼(wx.RadioButton)의 선언은 아래와 같이 어렵지 않으나, 다른 위젯과 달리 보통 그룹으로 동작하기 때문에 두 개 이상의 라디오버튼이 한 그룹이 되는 것이 일반적이다. radiobutton = wx.RadioButton(parent, id=ID_ANY, label="", pos=wx.DefaultPosition, size=wx.DefaultSize, style=0, name="") 따라서 동일 그룹의 라디오 버튼이라는 것을 style 옵.. 더보기
파이썬 GUI, 진행률 바 wx.Gauge 개요 게이지(wx.Gauge)는 어떤 작업의 진행 상태를 표시하는 수직, 혹은 수평 바 모양의 위젯이다. 이를 통해 남은 시간을 알려주는 진행률 바를 만들어보자. wx.Gauge 게이지(wx.Gauge)는 두 가지 모드가 있다. 첫째로 일반적인 경우에 작업의 남은 시간을 알려주는 모드. 둘째로 총 작업 시간을 알 수 없을때 진행상태만 표시해주는 모드이다. 선언은 아래와 같이 간단히 할 수 있다. gauge = wx.Gauge(parent, id=ID_ANY, range=100, pos=wx.DefaultPosition, size=wx.DefaultSize, style=wx.GA_HORIZONTAL, name="") parent: 게이지의 부모 클래스 id: 위젯 id이며 보통 -1로 두어 자동설정되게 한.. 더보기
파이썬 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.. 더보기

반응형