(프로그래밍 틀 추가) |
|||
(사용자 4명의 중간 판 9개는 보이지 않습니다) | |||
1번째 줄: | 1번째 줄: | ||
{{소문자}} | {{소문자 제목}} | ||
'''wxWidgets'''는 GUI 크로스 플랫폼 라이브러리중 하나로, 대표적으로 [[C++]], [[Python]], [[Perl]]등의 언어를 지원하며 객체지향적으로 설계되어 있다. | '''wxWidgets'''는 GUI 크로스 플랫폼 라이브러리중 하나로, 대표적으로 [[C++]], [[Python]], [[Perl]]등의 언어를 지원하며 객체지향적으로 설계되어 있다. | ||
현재 최신 버전은 3 | 현재 최신 버전은 3.2이다. | ||
== 특징 == | == 특징 == | ||
=== 다양한 운영체제의 지원 === | === 다양한 운영체제의 지원 === | ||
크로스 플랫폼 라이브러리라는 이름에 맞게 다양한 운영체제를 지원한다. | 크로스 플랫폼 라이브러리라는 이름에 맞게 다양한 운영체제를 지원한다. | ||
현재 공식적으로 지원 중인 | 현재 공식적으로 지원 중인 플랫폼은 다음과 같다. | ||
* [[Windows]] | * WXMSW | ||
* [[ | : [[Windows]] API를 백엔드로 사용하는 버전 | ||
* [[ | * WXGTK | ||
* | : Gtk2 및 Gtk3을 백엔드로 사용하는 버전, GTK가 지원되는 운영체제(주로 [[리눅스|Linux]])에서 사용할 수 있다. | ||
* wxOSX | |||
: [[MacOS]] Cocoa를 백엔드로 사용하는 버전 | |||
* wxUniv | |||
: Gtk나 Qt처럼 위젯을 직접 그리는 백엔드 | |||
* wxQT | |||
: [[QT]]를 백엔드로 사용하는 버전 | |||
=== 네이티브 컨트롤의 사용 === | === 네이티브 컨트롤의 사용 === | ||
wxWidgets와 비교가 되는 [[QT | 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을 사용한 프로그램 == | |||
* [[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을 사용한 프로그램[편집 | 원본 편집]
- FileZilla
- Bittorrent
- TortoiseCVS(클라이언트)
- Aegisub
- gnuplot
- PlayOnLinux
프로그래밍 관련 정보 |
|||||||||
---|---|---|---|---|---|---|---|---|---|
문자 인코딩 | |||||||||
문자 집합 |
|
||||||||
프로그래밍 언어 | |||||||||
마크업 언어 | |||||||||
표준과 API와 규격 | |||||||||
라이브러리 | |||||||||
프레임워크 | |||||||||
개발 소프트웨어 | |||||||||
튜토리얼 |