wxpython을 사용해서 윈도우 창 (프레임)의 스타일을 지정해줄 때에 사용하는 기본은 다음과 같다.
import wx
app = wx.App()
frame = wx.Frame(None, -1, 'frame test', style=wx.DEFAULT_FRAME_STYLE)
frame.Show()
app.MainLoop()
윈도우의 창을 띄우기 위해 사용되는 아주 기본이 되는 코드이고 실행 결과는 다음과 같다.
[그림. 1] 기본 Frame의 모습
위 코드의 2번 째 줄의 인자값들이 바로 윈도우 창을 구성하는 요소가 되는데,
창의 사이즈를 고정시킨다거나 또는 최소, 최대, 종료 버튼 등을 활성화 또는 비활성화를 시키고 싶어서
검색을 해봤는데....
윈도우 창의 기본 프레임을 구성하는 건 wx.DEFAULT_FRAME_STYLE 라는 인자였었고,
그 인자값 하나로 아래의 모든 값들이 표현(Enable)되는 것이었다.
wx.MINIMIZE_BOX : 최소화 버튼
wx.MAXIMIZE_BOX : 최대화 버튼
wx.RESIZE_BORDER : 창 크기 조절 가능
wx.SYSTEM_MENU : 이건 나도 모르겠음. 검색하면 나오겠지만 필요가 없어서 패스 -_-
wx.CAPTION : 상단바 (타이틀과 최소/최대/종료 버튼이 있는 바를 의미한다.)
wx.CLOSE_BOX : 종료 버튼
wx.CLIP_CHILDREN : 이것도 잘 모르겠음 귀찮아서 검색 안 함 -_-
디폴트 프레임 하나만 선언하면 저것들이 다 Enable 되는 것이다.
근데 만약 저 것들 중 일부를 Disable 시키고 싶다면??
우선 wx.DEFAULT_FRAME_STYLE를 먼저 선언하고 그 뒤에 연이어서 배제 할 스타일을 선언해주면 된다.
뭐 코딩하는 사람에 따라서 디폴트 프레임을 안 쓰고, 그냥 7개의 선언부 중 원하는 것만 선언해도 될 것이다.
나는 창의 사이즈 조절과 최대화 버튼을 Disable 시키고 싶었다.
frame = wx.Frame(None, -1, 'frame test', style=wx.DEFAULT_FRAME_STYLE ^ wx.RESIZE_BORDER ^ wx.MAXIMIZE_BOX)
위 코드에서 ^ 기호는 제외를 하겠다는 기호이다.
만약 제외가 아닌 추가를 시키고 싶다면 | 기호를 써주면 된다. (응용은 알아서 jal~~~)
[그림. 2] 최대화 버튼과 리사이징 비활성화
아무튼 보면은 마우스로 리사이징은 되지 않으며 최대화 버튼 또환 비활성화가 되었다.
개인적으로 작은 툴을 만들었었는데 최대화가 필요 없던지라 기능을 알아보다가 한글로 된 사이트가 없어 보여서 기록해둔다.
(한글로 누군가 옮겨 둔 것을 내가 검색 못했었을지도.. -_-)
'Language > Python' 카테고리의 다른 글
[Python] 외부 파일 실행 시에 cmd 쉘을 발생시키지 않는 ShellExecute (0) | 2017.02.15 |
---|---|
[Python] JPG 그림 파일 용량 줄이기 (0) | 2017.02.12 |
[Pyinstaller] exe 파일 빌드하며 짜증났던 부분 정리 (0) | 2017.02.06 |
[wxPython] wx.CheckBox를 이용한 체크박스 만들기 (0) | 2017.02.06 |
[wxPython] wx.ComboBox(콤보 박스)를 사용법 및 이벤트 처리 (0) | 2017.02.06 |