WXWIDGET (펌)

2016. 8. 24. 18:25IT-개발/좋은 Library

반응형


http://kshbrain.egloos.com/9500139 (펌)


wxWidgets는 GUI 프레임 워크를 제공해주는 라이브러리이다.


QT와 달리 유명하지는 않지만, wxWidget을 사용하는 응용 프로그램이 증가하고 있는 추세이다.
PS2 에뮬레이터 PCSX2에서 사용된 GUI 프레임워크 라이브러리로, PCSX2 빌드하면서 알게 되었다.

개인적으로 생각하는 장점이다.

1. 오픈 소스 라이브러리이다.

- QT 5.3의 경우, License Free와 Commercial License가 존재하지만, wxWidgets은 LGPL Licence를 따른다.
   SVN과 wxWidgets의 홈페이지에 관련 소스를 받아서, 사용자가 컴파일해서 사용하면 된다.

2. MFC 프로그래밍과 유사한 점이 많다.
- 큰 장점이라고 생각을 하는 부분이다.
   QT를 사용할 경우, QT만의 프로그래밍 구조 및 이벤트 처리 구조를 익혀야 한다.
   그렇지만, wxWidgets은 많은 부분이 MFC 구조와 동일한 것이 장점이다.
   MFC 프로그래밍을 경험한 사람이라면, 큰 차이점 없이 크로스 플랫폼 GUI 환경을 구축할 수 있지 않을까 하는 것이 개인적인 
   생각이다. (물론, MFC 프로그래밍보다 많은 인내심과 많은 삽질을 유발한다.)

- 이벤트 처리하는 것이 MFC와 유사하다.

MFC 이벤트 테이블의 예
BEGIN_MESSAGE_MAP(CSystemControllerPCDlg, CDialogEx)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDOK, &CSystemControllerPCDlg::OnBnClickedOk)
ON_BN_CLICKED(IDCANCEL, &CSystemControllerPCDlg::OnBnClickedCancel)
ON_NOTIFY(TCN_SELCHANGE, IDC_SYSTEMCONTROLLER_TAB, &CSystemControllerPCDlg::OnTcnSelchangeSystemControllerTab)
END_MESSAGE_MAP()

wxWidgets 이벤트 테이블의 예
wxBEGIN_EVENT_TABLE(MyFrame, wxFrame)
    EVT_MENU_RANGE( ID_MULTIPLE, ID_VERT_RULES, MyFrame::OnStyleChange )
    EVT_MENU( ID_EXIT, MyFrame::OnQuit )
    EVT_MENU( ID_ABOUT, MyFrame::OnAbout )
    EVT_MENU( ID_CLEARLOG, MyFrame::OnClearLog )
wxEND_EVENT_TABLE()

- 이벤트 처리기 등록하는 방법은 이 방법 이외에도 동적으로 할당하는 방법도 있다.
   이 방법은 나중에 언급할 예정이다.

4. 많은 서로 다른 운영체제에서 실행된다.
- QT는 버전마다 지원되는 운영체제가 달랐다면, wxWidgets은 제약 조건이 없다는 점이 장점이다.

개인적으로 생각하는 단점은 다음과 같다.

1. 한글로 된 강좌 및 자료, 포럼이 없다.
- 개발자 입장에서 정말 치명적인 문제일 듯 하다.
   레퍼런스 할 코드는 wxWidgets안에 존재하는 샘플 프로그램을 참조하는 것이 나을 정도이다.
   프로그래밍 공부를 하는 것이지 영어를 공부를 하는 것인지 헷갈릴 정도이다.

2. 안정적이지 못하다.
- 중요한 문제이다.
   여기서 말하는 안정적이다라는 말은 실행 도중 프로그램이 죽는 것을 의미하지 않는다.
   나의 경우에는 SVN에서 개발용 소스를 다운 받아, 개발을 하는 편이다.
   SVN에서 다운을 받아보면 알겠지만, 하루에 업데이트 되는 내용이 너무 많다.
   SVN에 업데이트 되는 소스를 보고 있노라면, 이 라이브러리를 정말로 써도 좋을까 하는 고민을 하게 된다.
   다만,  실제로 사용하면, 프로그램 동작 중에 죽는 경우는 없기 때문에 그 점에서는 신뢰해도 좋을 것 같다.

3. 개발 도구가 별로 없다.
- MFC의 경우, 비주얼 스튜디오를 이용한다. QT의 경우도 QT 디자이너가 있다.
  wxWidgets의 경우, 아무 것도 없다라고 이야기할 수 없지만 앞에 언급한 2개와는 지원하는 기능에 있어 차이점이 크다.
  나의 경우에는 개인적으로 공부하기 위해서 사용하는 프로젝트에 적용하기 때문에 큰 문제가 없지만, 상용 프로그램을 개발할 때
  소요 시간은 더 걸리지 않을까 하는 것이 개인적인 생각이다.

wxWidgets을 사용하면서 나중에 참고하기 위해서 이 글을 남기는 것을 미리 밝혀둔다.
wxWidgets은 상당히 매력적인 라이브러리라고 생각한다.
wxWidgets를 사용한 상용 프로그램도 많이 개발되고 있는 편(물론, 외국의 이야기이다.)이기 때문에 좀 더 활성화 되지 않을까 싶다.


(여기부턴, 내꺼 내용...)

wxwidget Tutorial site : 참고만... 저도 방문만 해봤어염.

http://zetcode.com/gui/wxwidgets/


'IT-개발 > 좋은 Library' 카테고리의 다른 글

wxwidget - 설치 (펌)  (0) 2016.08.25
Api - Hooking - EasyHook (펌)  (0) 2016.08.24
Boost 설치 (펌) - 기타링크  (0) 2016.08.24