Vertical BoxSizer에서 가로로 꽉 차게 컨트롤 추가하는 방법입니다.


class MyFrame(wx.Frame):

    def __init__(self):
        ...
        sizer = wx.BoxSizer(wx.VERTICAL)
        button = wx.Button(self, label = "Button 1", size = (-1, 50))
        sizer.Add(button, 0, wx.EXPAND | wx.ALL)
        ...


,

import 시에 다음과 같은 에러가 나는 경우가 있는데,


ImportError: DLL load failed: 지정된 모듈을 찾을 수 없습니다.



해당 모듈이 필요로 하는 DLL(Visual C++ Redistributable package 라던가..)이 시스템에 설치되어 있지 않아서 발생합니다.


Dependency walker 라는 프로그램으로 해당 모듈의 .pyd 파일을 열어보면 필요로하는 DLL들을 확인할 수 있습니다.


Dependency walker 사이트 : http://www.dependencywalker.com/


,

wxPython 사용 중 에러가 발생할 경우, 에러 메세지가 프로그램을 실행한 콘솔창이 아닌 별도의 창이 생성되면서 출력되는데(print문을 사용하여 출력한 메세지도 마찬가지) 프로그램이 종료되면서 이 창도 사라지기 때문에 에러 메세지 확인이 어렵습니다.


Application 객체 생성시에, 다음 방법을 사용하여, 에러 메세지를 파일로 저장 혹은 콘솔창에 출력하도록 할 수 있습니다.



1. 콘솔창에 출력하기


app = wx.App(False)



2. 외부 파일에 저장하기


app = wx.App(True, filename = "파일명.확장자")





※ P.S


이와 같은 현상은 wx.App를 사용하여 application을 생성하였을 경우에만 발생합니다. wx.PySimpleApp을 사용했을 때는 기본적으로 콘솔창으로 출력되게 되어있습니다.


,