본문으로 이동
주 메뉴
주 메뉴
사이드바로 이동
숨기기
둘러보기
대문
최근 바뀜
요즘 화제
임의의 문서로
sitesupport
사용자 모임
사랑방
사용자 모임
관리 요청
편집 안내
소개
도움말
정책과 지침
질문방
한울위키
검색
검색
보이기
로그인
개인 도구
로그인
GTK 문서 원본 보기
문서
토론
한국어
읽기
원본 보기
역사 보기
도구
도구
사이드바로 이동
숨기기
동작
읽기
원본 보기
역사 보기
일반
여기를 가리키는 문서
가리키는 글의 최근 바뀜
문서 정보
보이기
사이드바로 이동
숨기기
←
GTK
문서 편집 권한이 없습니다. 다음 이유를 확인해주세요:
요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다:
일반 사용자
.
문서의 원본을 보거나 복사할 수 있습니다.
{{소프트웨어 정보 | 이름 = GTK+ | 로고 = GTK logo.svg | 화면 = Gtk4-widget-factory demos.png | 개발자 = [[그놈 재단]] | released = {{시작 날짜와 나이|1998|04|14}} | ver layout = simple | latest release version = 4.20.0 | latest release date = {{시작 날짜와 나이|2025|08|29}} | latest preview version = 4.17.4 | latest preview date = {{시작 날짜와 나이|2025|02|01}} | 운영체제 = [[크로스 플랫폼]] | 종류 = 개발 라이브러리 | 라이선스 = [[GNU 약소 일반 공중 사용 허가서|LGPL]] | 웹사이트 = [http://www.gtk.org/ www.gtk.org] }} '''GTK'''는 '''김프 툴킷'''(GIMP Toolkit)<ref>{{웹 인용|url=https://www.gtk.org/about/|title=A brief description on how GTK was born.|website=www.gtk.org|access-date=July 5, 2023|archive-date=June 9, 2023|archive-url=https://web.archive.org/web/20230609101108/https://www.gtk.org/about/|url-status=live}}</ref>의 준말로, 초기에 [[김프]]를 위해서 만든 툴킷이었으며 [[X 윈도 시스템]]을 위한 위젯 툴킷 가운데 하나이다. GTK와 [[Qt (프레임워크)|Qt]]는 [[모티프 (위젯 툴킷)|모티프]]에 대한 좋은 대안이 되어 주었다. GTK는 1997년 [[스펜서 킴볼]](Spencer Kimball), [[피터 마티스]](Peter Mattis), [[조시 맥도널드]](Josh MacDonald)가 함께 만든 것이다. 그들은 모두 [[UC 버클리]]에 있는 [[eXperimental Computing Facility]] (XCF) 소속이었다. [[GNU 약소 일반 공중 사용 허가서|LGPL]]로 라이선스 되었기 때문에 GTK는 자유 소프트웨어이자 오픈 소스 소프트웨어이고, GNU 프로젝트의 일부분이다. == 설계 == GTK는 [[C (프로그래밍 언어)|C언어]]로 작성된 객체지향 위젯 툴킷이다. X11 디스플레이 서버 상에서, GTK는 위젯들을 그리는데 Xlib를 사용한다. Xlib는 유연하고 X 윈도 시스템이 작동하지 않는 플랫폼에서도 GTK가 사용될 수 있도록 한다. GTK는 Qt와 마찬가지로 (다른 많은 위젯 툴킷들과 달리) [[Intrinsics|Xt]]에 기반을 두지 않는다. 그래서 GTK를 많은 다른 환경으로 이식할 수 있었다. 하지만 전통적인 X11 응용 프로그램의 사용자 설정 방식인 X 리소스 데이터베이스에 접근할 수 없다는 단점이 있다. == 언어 바인딩 == [[C++]], [[펄]], [[루비 (프로그래밍 언어)|루비]], [[자바 (프로그래밍 언어)|자바]], [[파이썬]] 등으로의 바인딩을 제공한다. 많은 사람들이 [[에이다 (프로그래밍 언어)|에이다]], [[D (프로그래밍 언어)|D]], [[하스켈]], [[파스칼 (프로그래밍 언어)|파스칼]], [[PHP]], [[닷넷 프레임워크]]로의 바인딩을 작성하였다. === [[Hello World 프로그램]] === ==== [[C (프로그래밍 언어)|C]] ==== * 소스 코드 <syntaxhighlight lang="c"> // Include gtk #include <gtk/gtk.h> static void on_activate (GtkApplication *app) { // Create a new window GtkWidget *window = gtk_application_window_new (app); // Create a new button GtkWidget *button = gtk_button_new_with_label ("Hello, World!"); // When the button is clicked, close the window passed as an argument g_signal_connect_swapped (button, "clicked", G_CALLBACK (gtk_window_close), window); gtk_container_add (GTK_CONTAINER (window), button); gtk_widget_show_all (window); } int main (int argc, char *argv[]) { // Create a new application GtkApplication *app = gtk_application_new ("com.example.GtkApplication", G_APPLICATION_FLAGS_NONE); g_signal_connect (app, "activate", G_CALLBACK (on_activate), NULL); return g_application_run (G_APPLICATION (app), argc, argv); } </syntaxhighlight> * 빌드 명령 <syntaxhighlight lang="bash"> $ gcc `pkg-config --cflags gtk+-3.0` -o hello-world-gtk hello-world-gtk.c `pkg-config --libs gtk+-3.0` </syntaxhighlight> ==== [[발라 (프로그래밍 언어)|Vala]] ==== * 소스 코드 <syntaxhighlight lang="vala"> int main (string[] argv) { // Create a new application var app = new Gtk.Application ("com.example.GtkApplication", GLib.ApplicationFlags.FLAGS_NONE); app.activate.connect (() => { // Create a new window var window = new Gtk.ApplicationWindow (app); // Create a new button var button = new Gtk.Button.with_label ("Hello, World!"); // When the button is clicked, close the window button.clicked.connect (() => { window.close (); }); window.add (button); window.show_all (); }); return app.run (argv); } </syntaxhighlight> * 빌드 명령 <syntaxhighlight lang="bash"> $ valac --pkg gtk+-3.0 gtk-hello.vala </syntaxhighlight> == 모양 == 사용자는 디스플레이 엔진으로 툴킷의 모양을 설정할 수 있다. 엔진들은 [[마이크로소프트 윈도우|윈도우]], [[모티프 (위젯 툴킷)|모티프]], [[Qt (프레임워크)|Qt]], [[넥스트스텝]] 등의 모양으로 그려줄 수 있다. == GTK를 사용하는 환경 == [[파일:gimp2-2.png|오른쪽|섬네일|300px|Screenshot of the [[GIMP]] 2.0 on [[Xfce|Xfce4]]]] * [[그놈]] 환경은 GTK를 기반으로 사용한다. * [[Xfce]] 환경도 GTK를 기반으로 사용한다. 하지만 Xfce용 프로그램은 많은 것에 의존하지 않는다. (이것은 그놈 프로그램과 GTK 프로그램을 구분한다) * [[GPE]], [[Maemo]] (노키아의 인터넷 태블릿 프레임워크), [[액세스 리눅스 플랫폼]] (새로운 팜 OS 호환 PDA 플랫폼) 도 GTK를 기반으로 한다. GTK 프로그램은 [[KDE]] 같은 다른 데스크톱 환경에서 돌아간다. GTK는 [[마이크로소프트 윈도우]]에서도 돌아간다. [[DirectFB]]와 [[ncurses]] 기반 포팅도 있다. === 창 관리자 === * [[메타시티]]는 GTK+ 2를 사용한다. * [[Xfwm]]은 GTK+ 2를 사용한다. == 그래픽과 관련되지 않은 코드 == GTK는 초기에 그래픽과 관련되지 않은 코드를 포함했다. 이들은 링크드 리스트 및 바이너리 트리를 제공했다. [[GObject]]와 함께 오는 이러한 유틸리티 시스템은 [[Glib]]라는 별도의 라이브러리로 쪼개졌고, 이는 그래픽 인터페이스가 필요 없는 프로그래머에게 도움을 준다. == GTK+ 2 == GTK+ 2는 GTK+를 계승하였다. 이것의 새로운 기능은 [[Pango]]를 사용하는 새로운 텍스트 렌더링 엔진, 새로운 테마 엔진, 향상된 접근성, [[유니코드]]로의 완전한 전환이 있다. 하지만 GTK+ 2는 GTK+ 1과 호환성이 없으므로 프로그래머들이 소스를 새로 짜야 한다. 몇몇 프로그램들은 GTK+ 1을 그대로 사용한다. GTK+ 1은 GTK+ 2보다 빠르고 덜 복잡하고 임베디드 환경에 더 적합하다. GTK+ 2.8부터는 [[카이로 (그래픽)|카이로]] 엔진을 사용해서 벡터 그래픽을 처리한다. == MS 윈도우에서의 환경설정 == 공식적으로 [[MSYS|MSYS2]] 혹은 gvsbuild를 통해 설치할 수 있다. x86-64 환경에서 MSYS2를 이용하는 경우<syntaxhighlight lang="bash"> $ pacman -S mingw-w64-x86_64-gtk3 </syntaxhighlight>를 통해 설치할 수 있으며 GTK용 GUI 빌더 GLADE는<syntaxhighlight lang="bash"> pacman -S mingw-w64-x86_64-glade </syntaxhighlight>를 통해 설치할 수 있다. == 차후 개발 == * [https://web.archive.org/web/20110301113158/http://live.gnome.org/ProjectRidley Project Ridley]는 GTK+가 현재 포함하지 않는 각종의 라이브러리를 포함하려고 하는 시도이다. 이들은 libgnome, libgnomeui, libgnomeprint22, libgnomeprintui22, libglade, libgnomecanvas, libegg, libeel ,gtkglext를 포함한다. == 같이 보기 == * [[Gtk 샤프|Gtk#]] - [[닷넷 프레임워크]] API를 GTK+로 * [[PyGTK]], [[파이썬]] API를 GTK+로 * [[PHP-GTK]], [[PHP]] 확장 * [[루비 그놈]] == 각주 == {{각주}} == 외부 링크 == * {{위키공용분류-줄}} * {{공식 웹사이트}} * [http://library.gnome.org/devel/gtk3/stable/ GTK+ Reference Manual] {{웹아카이브|url=https://web.archive.org/web/20110226192711/http://library.gnome.org/devel/gtk3/stable/}} * [https://web.archive.org/web/20160624083231/http://gtk-apps.org/ List of GTK+ applications] * [https://web.archive.org/web/20130317070842/http://gtkfiles.org/ Another list of GTK+ applications] * [https://sourceforge.net/projects/gtk-mingw/ GTK+2&3 binaries for Windows] {{그놈}} {{전거 통제}} {{위키데이터 속성 추적}} [[분류:GTK| ]] [[분류:GNU 프로젝트 소프트웨어]] [[분류:그놈]] [[분류:위젯 툴킷]] [[분류:C로 작성된 자유 소프트웨어]] [[분류:LGPL 라이선스 소프트웨어]] [[분류:자유 라이브러리]] [[분류:X 라이브러리]]
GTK
문서로 돌아갑니다.
검색
검색
GTK 문서 원본 보기
새 주제