pip install wxpython
import wx
app = wx.App()
frm = wx.Frame(None, title="Hello world")
frm.Show()
app.MainLoop()
한 줄씩 보면
app = wx.App()
frm = wx.Frame(None, title="Hello world")

귀여웡
근데? 이걸 하는 게 아니었구나.
코드로 gui 만드는 게 아니라 wxformbuiler를 쓸 거다.
드래그 앤 드롭으로 GUI 설계하면 원하는 언어로 코드 작성해주는 툴이다.

다 뭔지 모르겠고 wxFormBuilder-4.2.1-x64.exe를 설치해보자.
설치하고 실행하면 바로 사용 가능하다.

안 예뻐
암튼 유튜브 보면서 공부해보자.
https://youtu.be/wg3q058Awj8?si=7OW5P4ngkqoqzlN7
9년 전 영상인데 왜케 빨라. 유용한데 0.5배속으로 봐야 함.
사용할 수 있는 기능들이 component palette에 있다.

가장 먼저 창을 생성하려면 Forms 탭에서 첫 번째 Frame을 누르면 된다.
변을 잡고 늘려서 사이즈도 조절할 수 있다.

그 다음, Common 탭에 버튼이나 텍스트들이 있는데 그 전에 Layout 탭의 wxBoxSizer를 먼저 넣어줘야 한다. 안 그럼 오류 뜸.

wxBoxSizer 넣으면 만들었던 창에 빨간 표시가 나온다.

이제 버튼, 텍스트 넣어주면 잘 들어간다.

왼쪽 트리에 넣는 요소들이 정리되고 있다.

요소의 스타일은 오른쪽 Properties에서 변경 가능하다.

등등 하다보면 요래 됨.


Editor 창에서 코드가 생성된 것을 볼 수 있다.

상단 탭에서 톱니바퀴 모양 버튼을 누르면 설정한 파일명으로 파일이 저장된다.


python 파일 열어보면 frame을 위한 class만 생성해주는 것 같다.

실행시키려면 아래 코드를 추가해준다.
if __name__ =="__main__":
app = wx.App()
frm = MyFrame3(None)
frm.Show()
app.MainLoop()
실행하면 설계한 대로 창이 만들어진다.

아직 이벤트 구현은 안 되어 있어서 창만 생긴 상태이다.
Properties 제일 아래쪽 Sizer의 속성에서 wxEXPAND와 wxALIGN_CENTER_HORIZONTAL는 동시에 사용하면 에러가 난다. wxEXPAND는 "위젯에서 사용 가능한 공간을 모두 쓰겠다"이고, wxALIGN_CENTER_HORIZONTAL는"가운데 정렬"이다.
wxEXPAND 설정이 우선이고 정렬은 무시되어 추후 코드 실행할 때 경고 메시지가 나온다.
동시에 사용하고 싶으면 글자 가운데 정렬은 style 쪽에서 설정하자.
