WxWidgets: 두 판 사이의 차이

편집 요약 없음
편집 요약 없음
태그: 조건 제한 도달
63번째 줄: 63번째 줄:
{{프로그래밍}}
{{프로그래밍}}
[[분류:라이브러리]]
[[분류:라이브러리]]
[[분류:위젯 툴킷]]

2022년 3월 13일 (일) 20:52 판

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

특징

다양한 운영체제의 지원

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

  • 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을 사용한 프로그램