wxWidgets

wxWidgets는 GUI 크로스 플랫폼 라이브러리중 하나로, 대표적으로 C++, Python, Perl등의 언어를 지원하며 객체지향적으로 설계되어 있다. 현재 최신 버전은 3.2이다.

특징[편집 | 원본 편집]

다양한 운영체제의 지원[편집 | 원본 편집]

크로스 플랫폼 라이브러리라는 이름에 맞게 다양한 운영체제를 지원한다. 현재 공식적으로 지원 중인 플랫폼은 다음과 같다.

  • WXMSW
Windows API를 백엔드로 사용하는 버전
  • WXGTK
Gtk2 및 Gtk3을 백엔드로 사용하는 버전, GTK가 지원되는 운영체제(주로 Linux)에서 사용할 수 있다.
  • wxOSX
MacOS Cocoa를 백엔드로 사용하는 버전
  • wxUniv
Gtk나 Qt처럼 위젯을 직접 그리는 백엔드
  • wxQT
QT를 백엔드로 사용하는 버전

네이티브 컨트롤의 사용[편집 | 원본 편집]

wxWidgets와 비교가 되는 QT와 달리 각 운영체제의 네이티브 컨트롤을 사용하여 다른 프로그램과의 차이가 적어 위화감이 적다.

크로스 플랫폼을 위한 다양한 라이브러리[편집 | 원본 편집]

코드 수정 없이 컴파일을 가능하게 하기 위하여 문자열클래스, Socket, XML, 정규표현식, 이미지 라이브러리,파일입출력등 다양한 지원 라이브러리가 포함되어 있다.

Hello, World![편집 | 원본 편집]

#include<wx/wx.h>

class App: public wxApp
{
public:
    bool OnInit() override;
    void OnPaint(wxPaintEvent&);
private:
    wxFrame* frame_;
};

wxIMPLEMENT_APP(App);

bool App:OnInit()
{
    frame_ = new wxFrame{nullptr, wxID_ANY, wxT("Hello, World!")};
    frame_->Bind(wxEVT_PAINT, &App::OnPaint, this);
    return true;
}

void App::OnPaint(wxPaintEvent&)
{
    wxPaintDC dc{frame_};
    dc.DrawText(wxT("Hello, World!"). 0, 0);
}

wxWidgets 개발 프로그램[편집 | 원본 편집]

wxWidgets을 사용한 프로그램[편집 | 원본 편집]