WxWidgets: 두 판 사이의 차이

편집 요약 없음
 
(사용자 9명의 중간 판 14개는 보이지 않습니다)
1번째 줄: 1번째 줄:
{{소문자}}
{{소문자 제목}}
'''wxWidgets'''는 GUI 크로스 플랫폼 라이브러리중 하나로, 대표적으로 [[C++]], [[Python]], [[Pearl]]등의 언어를 지원하며 객체지향적으로 설계되어 있다.
'''wxWidgets'''는 GUI 크로스 플랫폼 라이브러리중 하나로, 대표적으로 [[C++]], [[Python]], [[Perl]]등의 언어를 지원하며 객체지향적으로 설계되어 있다.
현재 최신 버전은 3.0.2이다.
현재 최신 버전은 3.2이다.


== 특징 ==
== 특징 ==
=== 다양한 운영체제의 지원 ===
=== 다양한 운영체제의 지원 ===
크로스 플랫폼 라이브러리라는 이름에 맞게 다양한 운영체제를 지원한다.
크로스 플랫폼 라이브러리라는 이름에 맞게 다양한 운영체제를 지원한다.
현재 공식적으로 지원 중인 운영체제는 다음과 같다.
현재 공식적으로 지원 중인 플랫폼은 다음과 같다.
* [[Windows]]
* WXMSW
* [[Mac OS X]]
: [[Windows]] API를 백엔드로 사용하는 버전
* [[Linux]]
* WXGTK
* X11를 지원하는 기타 *nix운영체제들
: Gtk2 및 Gtk3을 백엔드로 사용하는 버전, GTK가 지원되는 운영체제(주로 [[리눅스|Linux]])에서 사용할 수 있다.
* wxOSX
: [[MacOS]] Cocoa를 백엔드로 사용하는 버전
* wxUniv
: Gtk나 Qt처럼 위젯을 직접 그리는 백엔드
* wxQT
: [[QT]]를 백엔드로 사용하는 버전
 
=== 네이티브 컨트롤의 사용 ===
=== 네이티브 컨트롤의 사용 ===
wxWidgets와 비교가 되는 [[QT]], [[GTK+]]와 달리 각 운영체제의 네이티브 컨트롤을 사용하여 다른 프로그램과의 차이가 적어 위화감이 적다
wxWidgets와 비교가 되는 [[QT]]와 달리 각 운영체제의 네이티브 컨트롤을 사용하여 다른 프로그램과의 차이가 적어 위화감이 적다.
 
=== 크로스 플랫폼을 위한 다양한 라이브러리 ===
=== 크로스 플랫폼을 위한 다양한 라이브러리 ===
코드 수정 없이 컴파일을 가능하게 하기 위하여 문자열클래스, Socket, XML, 정규표현식, 이미지 라이브러리,파일입출력등 다양한 지원 라이브러리가 포함되어 있다.
코드 수정 없이 컴파일을 가능하게 하기 위하여 문자열클래스, Socket, XML, 정규표현식, 이미지 라이브러리,파일입출력등 다양한 지원 라이브러리가 포함되어 있다.
== Hello, World! ==
<syntaxhighlight lang="cpp">
#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);
}
</syntaxhighlight>
== wxWidgets 개발 프로그램 ==
== wxWidgets 개발 프로그램 ==
* [http://codeblocks.org CodeBlocks]
* [http://codeblocks.org CodeBlocks]
* [http://sourceforge.net/projects/wxformbuilder/ wxFormBuilder]
* [http://sourceforge.net/projects/wxformbuilder/ wxFormBuilder]
* [http://www.codelite.org/ CodeLite]
* [http://www.codelite.org/ CodeLite]
[[분류: 컴퓨터 프로그래밍]]
== wxWidgets을 사용한 프로그램 ==
[[분류: C++ 라이브러리]]
* [[FileZilla]]
* [[Bittorrent]]
* [[TortoiseCVS]](클라이언트)
* [[Aegisub]]
* gnuplot
* [[PlayOnLinux]]
 
{{프로그래밍}}
[[분류:라이브러리]]
[[분류:위젯 툴킷]]

2023년 4월 15일 (토) 00:13 기준 최신판

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을 사용한 프로그램[편집 | 원본 편집]