GTK
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
GTK는 GIMP에서 Motif 툴킷을 대체하기 위해 개발된 GUI 툴킷으로, 현재는 GNOME 데스크톱 환경에서 사용되는 객체 지향 위젯 툴킷이다. GTK는 C 언어로 작성되었으며, 다양한 플랫폼에서 작동하도록 여러 백엔드를 지원한다. 주요 기능으로는 텍스트 렌더링, 테마 엔진, 접근성 개선 등이 있으며, CSS와 유사한 구문으로 테마를 지원한다. GTK는 C, C++, Python 등 다양한 언어 바인딩을 제공하며, Glade, Cambalache, GTK Inspector와 같은 개발 도구를 제공한다. GTK는 GNOME, Xfce, MATE 등 다양한 데스크톱 환경과 GIMP, Inkscape, Firefox 등 다양한 애플리케이션에서 사용된다. 하지만 API 및 테마의 하위 호환성 부족, 개발팀과의 소통 문제 등으로 비판을 받기도 한다.
더 읽어볼만한 페이지
- GTK - Pango
Pango는 텍스트 렌더링 라이브러리로, OpenType 기능을 지원하여 텍스트 렌더링의 유연성을 높였으며, 리눅스, GTK 툴킷, 모질라 제품군 등 다양한 소프트웨어에서 사용되고 2006년 Cairo에 통합되어 다양한 플랫폼에서 텍스트와 그래픽 렌더링을 지원한다. - GTK - GObject
GObject는 GNOME 프로젝트의 핵심 객체 지향 시스템으로, GType을 통한 런타임 정보 관리, 클로저와 시그널 기반 메시징 시스템을 갖추고 있으며, 다양한 언어 바인딩을 지원하여 CUI, 서버 애플리케이션 및 자유 소프트웨어 프로젝트에서 활용된다. - 위젯 툴킷 - Tk (소프트웨어)
Tk는 Tcl 스크립팅 언어의 크로스 플랫폼 GUI 툴킷으로, 다양한 플랫폼 이식과 여러 프로그래밍 언어 바인딩을 지원하며 사용자 정의 가능한 위젯들을 제공한다. - 위젯 툴킷 - 윈도우 API
윈도우 API는 마이크로소프트 윈도우 운영 체제에서 응용 프로그램이 시스템 기능에 접근하도록 돕는 인터페이스 집합이며, 다양한 버전으로 발전해 왔고, 현재 Win32가 널리 사용되며, 유연성을 제공하지만 복잡하다는 단점을 보완하기 위해 다양한 래퍼 라이브러리가 개발되었다. - LGPL 라이선스 소프트웨어 - Qt (소프트웨어)
Qt는 C++로 작성된 크로스 플랫폼 애플리케이션 개발 프레임워크로, GUI, 멀티미디어, 네트워크 등 다양한 기능을 제공하며, 시그널과 슬롯 메커니즘과 Qt Creator 등의 개발 도구를 통해 데스크톱, 임베디드, 모바일 UI 개발에 널리 사용된다. - LGPL 라이선스 소프트웨어 - GMP (라이브러리)
GMP는 임의 정밀도 산술 연산을 지원하는 자유 라이브러리로서 C, C++ 언어를 지원하며 LGPL 라이선스를 따르고 다양한 프로그래밍 언어에서 활용 가능하다.
| GTK - [IT 관련 정보]에 관한 문서 | |
|---|---|
| 개요 | |
![]() | |
| 일반 정보 | |
| 명칭 | GTK |
| 종류 | 위젯 툴킷 |
| 라이선스 | LGPLv2.1+ |
| 웹사이트 | GTK 공식 웹사이트 |
| 개발 | |
| 개발자 | 그놈 프로젝트, eXperimental Computing Facility (XCF) |
| 작성자 | 스펜서 킴벌, 피터 마티스 |
| 프로그래밍 언어 | C, CSS |
| 릴리스 정보 | |
| 첫 번째 릴리스 | 1998년 4월 14일 |
| 안정화 버전 | 4.14.4 |
| 안정화 버전 출시일 | 2024년 4월 2일 |
| 미리보기 버전 | 4.15.1 |
| 미리보기 버전 출시일 | 2024년 5월 21일 |
| 지원 환경 | |
| 운영체제 | 리눅스, 유닉스 계열, macOS, 윈도우 |
2. 역사
GTK는 원래 GNU 이미지 조작 프로그램(GIMP) 개발 과정에서 모티프 툴킷을 대체하기 위해 설계되었다.[39] 피터 매티스는 모티프에 실망하여 GIMP 툴킷이라는 자체 GUI 툴킷을 작성하기 시작했으며, GIMP 0.60 릴리스에서 모티프를 성공적으로 대체했다.[39] 이후 GTK는 객체 지향 프로그래밍 방식으로 재작성되면서 GTK+로 이름이 변경되었고,[40] GIMP 0.99 릴리스에서 처음 사용되었다.
GTK+ 2는 Pango를 사용한 새로운 텍스트 렌더링 엔진, 새로운 테마 엔진, ATK를 이용한 접근성 개선, 유니코드로의 완전한 전환 등 여러 기능 개선이 이루어졌다.[47] GTK+ 2.8부터는 카이로 엔진을 사용해서 벡터 그래픽을 처리한다.[11] 하지만 GTK+ 2는 GTK+ 1과 호환성이 없어, 프로그래머들이 소스 코드를 새로 작성해야 했다.
GTK 버전 3.0.0에서는 수정된 입력 장치 처리, CSS와 유사한 구문으로 작성된 테마 지원, 그리고 다른 열린 GTK 애플리케이션에 대한 정보를 수신하는 기능이 추가되었다.[61]
2019년 2월 해커톤에서 프로젝트 이름에서 '+' 기호가 제거되어 GTK로 단순화되었다.[41]
GTK의 버전별 주요 개선 사항은 다음과 같다.
| 릴리스 시리즈 | 초기 릴리스 | 주요 개선 사항 | 최신 마이너 버전 |
|---|---|---|---|
| 1.0 | 1998-04-13[45] | 최초의 안정적인 버전 | 1.0. |
| 1.2 | 1999-02-25[46] | GtkFontSelector, GtkPacker, GtkItemFactory, GtkCTree, GtkInvisible, GtkCalendar, GtkLayout, GtkPlug, GtkSocket 등 새로운 GUI 위젯 추가 | 1.2.10 |
| 2.0 | 2002-03-11[47] | GObject 추가, 전반적인 UTF-8 지원 | 2.0.9 |
| 2.2 | 2002-12-22[48] | 멀티헤드 지원 | 2.2.4 |
| 2.4 | 2004-03-16[49] | GtkFileChooser, GtkComboBox, GtkComboBoxEntry, GtkExpander, GtkFontButton, GtkColorButton 등 새로운 위젯 추가 | 2.4.14 |
| 2.6 | 2004-12-16[50] | GtkIconView, GtkAboutDialog, GtkCellView 등 새로운 위젯 추가, Windows 98/Me를 지원하는 마지막 버전 | 2.6.10 |
| 2.8 | 2005-08-13[51] | 대부분의 위젯이 Cairo에 의해 렌더링됨 | 2.8.20 |
| 2.10 | 2006-07-03[52] | GtkStatusIcon, GtkAssistant, GtkLinkButton, GtkRecentChooser 등 새로운 위젯 추가, GtkPrintOperation 인쇄 지원 | 2.10.14 |
| 2.12 | 2007-09-14[53] | GtkBuilder 추가 | 2.12.12 |
| 2.14 | 2008-09-04[54] | JPEG 2000 로드 지원 | 2.14.7 |
| 2.16 | 2009-03-13[55] | GtkOrientable 위젯 추가, 암호 입력 시 Caps Lock 경고, GtkScale, GtkStatusIcon, GtkFileChooser 개선 | 2.16.6 |
| 2.18 | 2009-09-23[56] | GtkInfoBar 위젯 추가, 파일 선택기, 인쇄 기능 개선, GDK가 "클라이언트 측 창"을 사용하도록 재작성됨 | 2.18.9 |
| 2.20 | 2010-03-23[57] | GtkSpinner, GtkToolPalette, GtkOffscreenWindow 등 새로운 위젯 추가, 파일 선택기, 키보드 처리, GDK 개선, GTK에 내부 검사 데이터 포함 | 2.20.1 |
| 2.22 | 2010-09-23[58] | GdkPixbuf가 별도의 모듈로 이동, 대부분의 GDK 그리기는 Cairo 기반, 많은 내부 데이터가 비공개 처리됨 | 2.22.1 |
| 2.24 | 2011-01-30[59] | GtkComboBoxText 위젯 추가, CUPS 인쇄 백엔드에서 PDF로 인쇄 작업 전송 가능, GTK+ 2.x에서 GTK+ 3으로 마이그레이션 | 2.24.33 (2020-12-21)[60] |
| 3.0 | 2011-02-10[61] | 2009년 2월 더블린 GTK 테마 해킹 페스트에서 개발 시작,[62] 2009년 4월 9일 개발 로드맵 초안 발표,[63] "Project Ridley" 완료, 외부 라이브러리 통합,[64] 모든 렌더링은 Cairo 사용, GDK는 X11 독립성 강화, XInput2, 테마 API는 CSS 기반 | 3.0.12 |
| 3.2 | 2011-09-25[65] | GtkLockButton, GtkOverlay 등 새로운 위젯 추가, 새로운 글꼴 선택기 대화 상자, Wayland, HTML5 실험적 백엔드 추가 | 3.2.4 |
| 3.4 | 2012-03-26[66] | GtkApplication 메뉴 지원, 새로운 색상 선택기, 터치 장치 및 부드러운 스크롤링 지원, macOS 지원 개선, Windows에서 잘 작동하는 최초의 GTK 3 버전, Wayland 백엔드 업데이트, 접근성 개선, CSS 테마 지원 강화 | 3.4.4 |
| 3.6 | 2012-09-24[67] | GtkSearchEntry, GtkMenuButton, GtkLevelBar 등 새로운 위젯 추가, 세로 스핀 버튼, CSS 애니메이션, 블러 그림자, 테마에서 교차 페이드 및 전환 지원 | 3.6.5 |
| 3.8 | 2013-03-25[68] | Wayland 1.0 안정적 지원, broadwayd 서버 지원, 테마 개선, 지오메트리 관리 개선, 터치 개선, 창 관리자와 프레임 동기화 프로토콜 지원, GdkFrameClock 추가[69] | 3.8.9 |
| 3.10 | 2013-09-23[70] | GtkHeaderBar, GtkPlacesSidebar, GtkStack, GtkStackSwitcher, GtkRevealer, GtkSearchBar, GtkListBox 등 새로운 위젯 추가, Wayland 1.2 지원, 클라이언트 측 데코레이션, 고해상도 화면 지원, 스크롤링 미세 조정 모드 추가, Motif DND 프로토콜 지원 등 제거, 현대적인 GTK 그리기 모델 | 3.10.9 |
| 3.12 | 2014-03-25[71] | 클라이언트 측 데코레이션,[72] Wayland 1.5 지원, GtkPopover 위젯 추가 | 3.12.2 |
| 3.14 | 2014-09-22[73] | GtkInspector 도입,[74][75] 제스처/멀티 터치 지원 개선,[76][77] GtkMisc, GtkAlignment, GtkArrow, GdkColor 등 사용 중단,[78] Wayland에서 GNOME Shell 클래식 모드 지원[79] | 3.14.15 |
| 3.16 | 2015-03-22[80] | GDK에서 libepoxy를 사용하여 OpenGL 렌더링 지원, GtkGLArea, GtkStackSidebar, GtkModelButton, GtkPopoverMenu 등 새로운 위젯 추가, 스크롤 재정비 (스크롤바 기본 숨김),[81] 실험적인 Mir 백엔드[82] | 3.16.7 |
| 3.18 | 2015-09-23[83] | CSS 노드 인프라 추가, 파일 선택기 디자인 개선, Windows XP 지원 중단, 목록 및 플로우 상자 모델 지원, 운동 터치패드 스크롤링, 터치패드 제스처(Wayland), gtk-builder-tool 유틸리티, 출력 전용 창 | 3.18.9 |
| 3.20 | 2016-03-21[84] | CSS 노드 추가 통합,[85] 드래그 앤 드롭을 GDK로 이동, GtkShortcutsWindow 위젯 추가 | 3.20.10 |
| 3.22 | 2016-09-21[86] | 마지막 3.x 릴리스,[25] Wayland 태블릿 지원 병합,[87] 그래픽 태블릿 지원 완료,[88] GTK 2만큼 안정적[89][90][91] | 3.22.29 |
| 3.24 | 2018-09-03[92] | GTK+ 3.x에서 GTK+ 4로 마이그레이션 용이,[92] libepoxy 1.4, pango 1.41 종속성, OpenType 글꼴 기능, 이모지 기능, gdk_window_move_to_rect API 추가, Wayland FreeBSD 익명 공유 메모리 사용, GTK 4에서 사라질 API 사용 중단 | 3.24.29 |
| 3.90 | 2017-03-31[93] | GTK Scene Graph Kit(GSK) 병합,[94] 사용 중단 API 제거, Vulkan 렌더러 추가[95] | 3.90 |
| 3.92 | 2017-10-18[96][97] | GNU autotools에서 Meson으로 빌드 시스템 변경 | 3.92.1 |
| 3.94 | 2018-06-26[99] | GdkScreen, GdkVisual 제거, GdkDeviceManager를 GdkSeat로 대체, 클립보드 처리 GDK로 이동, GdkEvent 불투명 GObject 변환, GSK GL 렌더러 완료, GdkPixbuf 사용 감소, Wayland 백엔드 KDE 서버 측 장식 프로토콜 구현, Broadway GSK 이식, GdkWindow GdkSurface로 이름 변경, GdkPaintable 추상화, GtkVideo, GtkMediaFile, GtkMediaStream, GtkMediaControls 미디어 지원 | 3.94.0 |
| 3.96 | 2019-05-07[100] | `gtk4-builder-tool` `simplify` 명령에 `--3to4` 옵션 추가,[101] GtkWidget GtkLayoutManager 사용, 레이아웃 관리자, 포커스 처리 재작성, 이벤트 단순화 | 3.96.0 |
| 3.98 | 2020-02-10[100] | 성능 개선, 드래그 앤 드롭 리팩터링, GDK Wayland 이동, GtkMenu, GtkToolbar 제거, 이모지 선택기, 실행 취소 스택, 새로운 레이아웃 관리자 추가[102] | 3.98.5 |
| 3.99.0 | 2020-07-31[103] | ATK 후속 제품 도입,[104] WAI-ARIA 구현 예정, GLib 유형 사용, 새로운 위젯, 수정 및 개선[103] | 3.99.4 |
| 4.0 | 2020-12-16[105] | 4.0.2 | |
| 4.2 | 2021-03-30[106] | ||
| 4.4 | 2021-08-23[107] | ||
| 4.6 | 2021-12-30[108] | ||
| 4.8 | 2022-09-06[109] | ||
| 4.10 | 2023-03-04[110] | GtkFileChooser 사용 중단 (GtkFileDialog 사용)[111] |
2. 1. Linux/Unix
- 그놈 환경은 GTK를 기반으로 사용한다.[116]
- Xfce 환경도 GTK를 기반으로 사용한다. 하지만 Xfce용 프로그램은 많은 것에 의존하지 않는다. (이것은 그놈 프로그램과 GTK 프로그램을 구분한다)[116]
- GPE, Maemo (노키아의 인터넷 태블릿 프레임워크), 액세스 리눅스 플랫폼 (새로운 팜 OS 호환 PDA 플랫폼)도 GTK를 기반으로 한다.[116]
GTK 프로그램은 KDE 같은 다른 데스크톱 환경에서도 실행된다.[116] GTK는 원래 Motif의 대안으로 GIMP를 위해 설계되어 사용되었다.[116] Peter Mattis는 Motif에 실망하여 그의 자체 GUI 툴킷인 GIMP 툴킷을 만들었다. 이는 GIMP 0.60 릴리스에서 Motif를 대체하는 데 성공했다.[116] 결국 GTK는 다시 작성되어 객체 지향이 되었고, GTK+로 이름이 변경되었다.[117] 이는 GIMP의 0.99 릴리스에서 처음 사용되었다. GTK는 이후 GNOME 재단에 의해 유지 보수되었고 GNOME 데스크톱 환경에서 사용되게 되었다.[116]
GTK 2.0.0 릴리스 시리즈는 Pango를 사용한 개선된 텍스트 렌더링, 새로운 테마 엔진, 더욱 유연한 API 등을 포함했다. 버전 2.8부터 GTK 2는 벡터 그래픽스 드로잉을 위한 라이브러리로 Cairo에 의존하게 되었다.[116]
GTK 3.0.0은 수정된 입력 장치 처리, CSS와 같은 구문으로 작성된 테마 지원, 다른 열린 GTK 애플리케이션으로부터 정보 수신 기능 등을 포함하고 있다.[116]

2. 2. macOS
macOS에서는 Quartz 백엔드의 GTK를 사용할 수 있다.[118]2. 3. Windows
GTK는 MSYS2나 gvsbuild를 통해 윈도우 운영체제에서 사용할 수 있다.[119] x86-64 환경에서 MSYS2를 이용하는 경우, 다음 명령어를 통해 GTK3를 설치할 수 있다.```bash
$ pacman -S mingw-w64-x86_64-gtk3
```
GTK용 GUI 빌더인 GLADE는 다음 명령어로 설치할 수 있다.
```bash
pacman -S mingw-w64-x86_64-glade
```
GTK 2.24.10 및 3.6.4 이후, 설치 프로그램이 포함된 Windows용 개발은 GNOME에 의해 중단되었다.[119] GTK 2.24.10 및 3.6.4는 인터넷에서 이용 가능하지만, 버그가 많고 실제 버전보다 기능이 제한적이다.[120] 64비트 Windows용 버전은 Tom Schoonjans에 의해 준비되었으며, 2.24.32 및 3.22.30을 사용할 수 있다.[121]
3. 소프트웨어 아키텍처
GTK는 C언어로 작성된 객체 지향 위젯 툴킷이다. 객체 지향을 위해 GLib 객체 시스템인 GObject를 사용한다.[8] GTK는 주로 X11 및 Wayland 기반의 윈도우 시스템용이지만, Microsoft Windows(Windows API와 인터페이스) 및 macOS(Quartz와 인터페이스)를 포함한 다른 플랫폼에서도 작동한다. ''Broadway''라는 HTML5 백엔드도 있다.[9][10]
GDK는 기반이 되는 윈도우 및 그래픽 시스템에서 제공하는 저수준 함수를 감싸는 역할을 한다.
GSK는 GTK를 위한 렌더링 및 장면 그래프 API이다. GSK는 그래픽 제어 요소(위젯)와 렌더링 사이에 위치하며, 2017년 3월에 출시된 GTK 버전 3.90에 최종적으로 병합되었다.
GtkBuilder는 코드를 작성하지 않고도 사용자 인터페이스를 설계할 수 있게 해준다. 인터페이스는 확장 가능한 마크업 언어 (XML) 파일로 설명되며, 이 파일은 직접 작성하거나 GUI 디자이너에 의해 생성된 후 런타임에 로드되어 객체가 자동으로 생성된다. 사용자 인터페이스에 대한 설명은 사용되는 프로그래밍 언어와 독립적이다.
2005년에 출시된 버전 2.8부터 GTK는 대부분의 그래픽 제어 요소 위젯을 렌더링하기 위해 Cairo 사용을 시작했다.[11] GTK 버전 3.0부터 모든 렌더링은 Cairo를 사용하여 수행된다.[12]
3. 1. 백엔드
GTK는 다양한 백엔드를 지원하며, 이는 시스템 및 환경에 따라 GTK 애플리케이션을 표시하는 다양한 방법을 제공한다. GTK 백엔드는 다음과 같다.- 웨이랜드 – 리눅스 시스템에서 웨이랜드 디스플레이 서버와 함께 사용되며, X11의 현대적인 대체 기술이다.
- X11 – X.Org 디스플레이 서버를 사용하는 리눅스 시스템의 기본 설정이다.
- Win32 – 윈도우에서 GTK 애플리케이션을 실행하기 위한 것이다.
- 쿼츠 – macOS 지원을 위한 것이다.
- 브로드웨이(Broadway) – HTML5와 웹소켓을 사용하여 GTK 애플리케이션을 웹 브라우저에서 실행할 수 있도록 한다.
3. 2. 언어 바인딩
C++, 펄, 루비, 자바, 파이썬 등 다양한 언어로 바인딩을 제공한다. 에이다, D, 하스켈, 파스칼, PHP, 닷넷 프레임워크 등 비공식적인 바인딩도 많이 작성되었다.[14]언어 바인딩을 사용하면 C 외에도 C++, 지니, 자바스크립트, 펄, 파이썬, 발라 등 다른 언어에서도 GTK를 사용할 수 있다.[14]
Qt와 달리 GTK는 C 언어를 사용하지만, 객체 지향 패러다임으로 설계하는 것이 일반적이다. 공식적으로 C++(gtkmm), Perl(gtk2-perl), Python(PyGTK), C#(Gtk#), Java(Java-GNOME), JavaScript, Vala 바인딩을 지원한다. 비공식적으로는 Fortran(gtk-fortran), Ruby(Ruby/Gtk2), PHP(PHP-GTK), Pascal, Lua, Haskell, FreeBASIC 등의 언어로도 바인딩하여 개발할 수 있다.[114]
4. 개발 도구
GTK는 다양한 개발 도구를 제공한다. GUI 디자이너를 통해 쉽게 UI를 설계할 수 있고, GTK Inspector를 사용해 UI 요소를 검사하고 수정할 수 있다.
4. 1. GUI 디자이너
GtkBuilder는 코드를 작성하지 않고도 사용자 인터페이스를 설계할 수 있게 해준다. 인터페이스는 XML 파일로 설명되며, 런타임에 로드되어 객체가 자동으로 생성된다. 사용자 인터페이스에 대한 설명은 사용되는 프로그래밍 언어와 독립적이다.
GTK용 GUI 빌더는 여러 종류가 있다. 다음은 GTK GUI 디자이너 목록이다.
- Cambalache - Glade의 후속작이며, GTK 4를 지원한다.[15][16]
- Glade - GTK에 내장된 GUI 설명 형식인 GtkBuilder를 지원한다. (활발하게 유지 관리되지 않음)
- Gazpacho - 파이썬으로 작성된 GTK 툴킷용 GUI 빌더[17]
- Crow Designer - 자체 GuiXml 형식 및 GuiLoader 라이브러리에 의존한다.[18]
- Stetic - MonoDevelop의 일부이며, Gtk#에 맞춰져 있다.
- Gambas (버전 2.0부터 BASIC 위에서)
- Xojo
- Lazarus (리눅스에서 기본적으로 GTK 2와 인터페이스)
4. 2. GTK Inspector

GTK Inspector는 GTK에 내장된 대화형 디버깅 도구이다. 개발자는 GTK Inspector를 통해 UI 요소를 검사 및 수정하고, CSS 변경 사항을 테스트하며, 위젯 구조를 실시간으로 분석할 수 있다. `Control + Shift + I` 또는 `Control + Shift + D` 단축키를 사용하거나 `GTK_DEBUG=interactive` 환경 변수를 설정하여 활성화할 수 있다.[19] GTK 3.14 버전에서 처음 도입되었다.[20][21]
GTK Inspector의 주요 기능은 다음과 같다.
- 대화형 디버깅
- 실시간 CSS 테스트 및 수정
- 자세한 검사를 위한 위젯 확대
- UI 구조 분석 및 객체 속성 검사
- 환경 변수를 통한 사용자 정의 표시 설정
- 상세한 객체 검사 (유형, 상태, 속성, CSS, 동작 등)
- 전역 애플리케이션 정보 표시
- CSS 규칙 디버깅
- 렌더링 파이프라인 기록 및 검사
5. GTK를 사용하는 환경
그놈과 Xfce는 GTK를 기반으로 만들어진 환경이다. Xfce용 프로그램은 다른 프로그램에 많이 의존하지 않는다. GPE, Maemo, 액세스 리눅스 플랫폼도 GTK를 기반으로 한다.[1]
GTK 프로그램은 KDE 같은 다른 데스크톱 환경이나 마이크로소프트 윈도우에서도 실행할 수 있다. DirectFB와 ncurses 기반 포팅도 존재한다.[1]
5. 1. 데스크톱 환경
- 그놈은 GTK를 기반으로 하는 대표적인 데스크톱 환경이며, 그놈 기본 프로그램이 GTK를 사용한다.[1]
- Xfce는 가볍고 빠른 데스크톱 환경으로, GTK를 기반으로 한다. Xfce용 프로그램은 많은 것에 의존하지 않으며, 버전 4.14부터 GTK 3을 기반으로 한다.[1]
- MATE는 GNOME 2의 포크로, 버전 1.18부터 GTK 3을 사용한다.[1]
- Budgie는 Solus 운영 체제의 후속작을 위해 처음부터 제작되었다.[1]
- Cinnamon은 GTK 버전 3을 사용하는 GNOME 3의 포크이다.[1]
- Pantheon은 elementary OS에서 개발되었으며 GTK 3을 독점적으로 사용한다.[1]
- Sugar는 GTK, 특히 PyGTK를 사용하는 청소년 초등 교육을 위한 데스크톱 환경이다.[1]
- Phosh는 PureOS를 위해 설계된 모바일 UI이다.[1]
- LXDE (Lightweight X11 데스크톱 환경)는 GTK 2를 기반으로 한다.[1]
- Unity는 Ubuntu의 이전 기본 데스크톱 환경이다.[1]
- 액세스 리눅스 플랫폼(팜 OS(Palm OS)의 후속작, PDA)[1]
- Consort, GNOME 3.4 폴백 모드 - 포크 from 솔루스[1]
- GPE 팜탑 환경(GPE Palmtop Environment)[1]
- ROX 데스크톱, RISC OS의 GUI 기능을 갖춘 가벼운 데스크톱[1]
5. 2. 윈도우 매니저
메타시티, Xfwm은 GTK+ 2를 사용한다.[1] 마르코, 머터 등도 GTK를 사용한다.5. 3. 애플리케이션
6. 모양 (테마)
GTK는 디스플레이 엔진을 통해 툴킷의 모양을 설정할 수 있다. 윈도우, 모티프, Qt, macOS의 Aqua 등 다른 유명한 툴킷이나 플랫폼의 외관을 모방하는 테마들이 제공된다.[115] GTK 3부터는 CSS와 유사한 구문으로 테마를 작성할 수 있다.
7. 비판
GTK는 주요 업데이트에서 응용 프로그래밍 인터페이스(API) 및 테마의 하위 호환성이 부족하다는 비판을 받는다.[30][31] 이 때문에 응용 프로그램 개발자나 테마 개발자는 GTK 최신 버전에서 작동하도록 코드를 다시 작성해야 하는 경우가 발생한다.
GTK 3.x 개발 주기 동안의 마이너 릴리스 간 호환성 문제는 벤자민 오테(Benjamin Otte)가 현대 사용자가 기대하는 기능을 제공하고 점차 영향력이 커지는 웨이랜드 디스플레이 서버 프로토콜을 지원해야 하는 등 혁신에 대한 강력한 압력 때문이라고 설명했다. 그는 GTK 4 출시와 함께 혁신 필요성에 대한 압력이 해소되어 안정성과 혁신 사이의 균형이 안정성으로 기울어질 것이라고 하였다.[89]
일부 개발자들은 GTK 개발팀의 소통 방식과 커뮤니티 요청 무시에 대한 불만을 제기하기도 했다.[33] 다음은 그 사례이다.
- 오렐리앙 가토(Aurélien Gâteau)는 GTK 응용 프로그램으로 Gwenview를 시작했지만 개발 초기에 Qt로 전환했다.[32]
- Subsurface의 공동 개발자이자 인텔(Intel) 오픈 소스 기술 센터 멤버인 디르크 혼델(Dirk Hohndel)은 GTK 개발자들이 거칠고 대부분의 커뮤니티 요청을 무시한다고 비판했다.[33]
- LXDE 개발자(GTK 버전은 중단되었고 모든 노력이 Qt 포트에 집중됨)인 홍젠예는 GTK 툴킷 버전 3의 급진적인 API 변경과 메모리 사용량 증가에 대한 불만을 표명했으며, PCMan File Manager(PCManFM)을 Qt로 포팅했다. PCManFM은 GTK와 Qt 백엔드를 동시에 사용하여 개발되고 있다.[34]
- Audacious 음악 플레이어는 버전 3.6에서 Qt로 이동했다.[35] 개발자가 밝힌 이유에는 애플리케이션이 "GNOME스럽고 어색해 보이게" 만든다고 주장하는 클라이언트 측 창 장식으로의 전환이 포함된다.[36]
- Wireshark는 GTK의 크로스 플랫폼 지원에 대한 좋지 않은 경험으로 인해 Qt로 전환했다.[37]
8. 차후 개발
Project Ridley는 GTK+에 현재 포함되지 않은 다양한 라이브러리를 통합하려는 시도였다.[8] 여기에는 libgnome, libgnomeui, libgnomeprint22, libgnomeprintui22, libglade, libgnomecanvas, libegg, libeel, gtkglext가 포함된다. (GTK+ 3에서 대부분 완료됨)
2019년 2월 6일, GTK 4가 프로젝트 이름에서 "+"를 삭제할 것이라고 발표되었다.[3] GTK 4는 안정성과 성능 향상에 중점을 두고 개발되었다. 2016년 가을에 출시된 GTK 버전 3.22는 마지막 3.x 릴리스로 계획되었지만, GTK 4의 지연으로 인해 2018년 가을에 버전 3.24가 출시되었다.[26] GTK 4 개발은 2020년 12월 첫 번째 GTK 4.0 안정 릴리스가 출시될 때까지 버전 이름 3.90, 3.92 등을 사용했다.[27]
구문 강조를 위한 "소스 코드 편집 위젯"인 GtkSourceView는 GTK와 별도로 GNOME에서 gtksourceview라는 라이브러리로 유지 관리된다.
GtkSpell은 GTK와는 별개의 라이브러리이다. GtkSpell은 GTK와 Enchant에 의존한다. Enchant는 ispell, Hunspell 등 실제 맞춤법 검사기 엔진/소프트웨어를 위한 래퍼이다. GtkSpell은 GTK의 GtkTextView 위젯을 사용하여 철자 오류가 있는 단어를 강조 표시하고 교체를 제안한다.
참조
[1]
웹사이트
The GTK Open Source Project on Open Hub: Languages Page
https://www.openhub.[...]
2019-03-28
[2]
웹사이트
A brief description on how GTK was born.
https://www.gtk.org/[...]
2023-07-05
[3]
웹사이트
Project rename to "GTK"
https://mail.gnome.o[...]
GNOME
2019-02-06
[4]
웹사이트
GTK+ Features
https://web.archive.[...]
2014-09-08
[5]
웹사이트
Documentation
https://www.x.org/wi[...]
2019-11-22
[6]
웹사이트
GTK 4.0 – GTK Development Blog
https://blog.gtk.org[...]
2020-12-16
[7]
웹사이트
Robin Rowe / GTK1 · GitLab
https://gitlab.com/r[...]
2023-02-22
[8]
웹사이트
GTK+ 3 Reference Manual
https://developer.gn[...]
2017-07-15
[9]
웹사이트
Using GTK+ with Broadway
https://developer.gn[...]
GNOME
2018-03-06
[10]
웹사이트
Broadway - GitHub symbiose/symbiose Wiki
https://github.com/s[...]
2018-03-06
[11]
웹사이트
GTK+ to Use Cairo Vector Engine
http://developers.sl[...]
2005-02-05
[12]
웹사이트
Gtk: Migrating from GTK 2.x to GTK 3
https://docs.gtk.org[...]
2022-06-16
[13]
웹사이트
Matthias Clasen DevConf.cz 2018 talk about GTK+ 4
https://mclasen.fedo[...]
2018-01-26
[14]
웹사이트
GTK+ Language Bindings
https://web.archive.[...]
2017-06-03
[15]
웹사이트
Cambalache: road to version 1.0
https://events.gnome[...]
[16]
웹사이트
glade - man pages section 1: User Commands
https://docs.oracle.[...]
2024-09-11
[17]
웹사이트
Debian -- Package Search Results -- gazpacho
https://packages.deb[...]
2019-11-22
[18]
웹사이트
Nothing-personal - A development site for Crow Designer, GuiLoader and Rally - Google Project Hosting
https://archive.toda[...]
2014-02-17
[19]
웹사이트
GTK Inspector
https://developer.gn[...]
2024-09-14
[20]
웹사이트
Introducing GtkInspector
http://blogs.gnome.o[...]
2014-05-15
[21]
웹사이트
Another GtkInspector update
http://blogs.gnome.o[...]
2014-07-11
[22]
웹사이트
GNOME Quick SWOT Analysis
https://wiki.gnome.o[...]
2014-03-18
[23]
웹사이트
GNOME Languages
https://web.archive.[...]
Black Duck Software
2014-05-22
[24]
웹사이트
About
https://web.archive.[...]
GNOME Users And Developers European Conference (GUADEC)
2011-12-03
[25]
웹사이트
Versioning and long term stability promise in GTK
https://blog.gtk.org[...]
GTK development blog
2016-09-01
[26]
웹사이트
GTK+ 3.24 To Deliver Some New Features While Waiting For GTK4
https://www.phoronix[...]
2021-04-02
[27]
웹사이트
GTK 4.0
https://blog.gtk.org[...]
GTK development blog
2020-12-16
[28]
뉴스
Development release GIMP 2.99.2 is out
https://www.gimp.org[...]
Gimp news
2020-11-06
[29]
웹사이트
Build system change GTK's master branch
https://mail.gnome.o[...]
2018-10-29
[30]
웹사이트
How Does One Create A Gtk+ Application? – Morten Welinder
http://blogs.gnome.o[...]
2014-06-23
[31]
웹사이트
A GTK+ update
https://blogs.gnome.[...]
2015-11-20
[32]
웹사이트
The story behind Gwenview name
https://agateau.com/[...]
2021-10-03
[33]
웹사이트
The Biggest Problem With GTK & What Qt Does Good
https://www.phoronix[...]
Phoronix
2014-01-12
[34]
웹사이트
PCManFM Qt 0.1.0 released
http://blog.lxde.org[...]
2013-03-26
[35]
웹사이트
Audacious - An Advanced Audio Player
https://audacious-me[...]
2019-11-22
[36]
웹사이트
Ugly window decorations and how to fix them (GTK 3.12)
http://redmine.audac[...]
2014-05-06
[37]
웹사이트
We're switching to Qt
https://blog.wiresha[...]
2013-10-15
[38]
웹사이트
GTK+
http://www.wxwidgets[...]
2007-08-28
[39]
웹사이트
LinuxWorld - Where did Spencer Kimball and Peter Mattis go?
http://www.linuxworl[...]
2013-08-19
[40]
웹사이트
What is the + in GTK+?
http://developer.gno[...]
2014-03-18
[41]
웹사이트
Rename some references to GTK+ (d080be3e) · Commits · GNOME / gtk
https://gitlab.gnome[...]
2019-02-04
[42]
웹사이트
HP OpenVMS systems - GTK+
http://h41379.www4.h[...]
2018-07-12
[43]
웹사이트
HP OpenVMS systems - GTK+
http://h41379.www4.h[...]
2018-07-12
[44]
웹사이트
GTK+ 4 Status Update
https://mclasen.fedo[...]
2024-04-22
[45]
간행물
ANNOUNCE: GTK+ 1.0.0 Released!
https://mail.gnome.o[...]
1998-04-13
[46]
간행물
ANNOUNCE: GTK+ and GLib 1.2.0 Released
https://mail.gnome.o[...]
1999-02-25
[47]
간행물
GTK+-2.0.0 released
https://mail.gnome.o[...]
2002-03-11
[48]
간행물
GTK+-2.2.0 released
https://mail.gnome.o[...]
2002-12-22
[49]
간행물
GTK+-2.4.0 released
https://mail.gnome.o[...]
2004-03-16
[50]
간행물
GTK+-2.6.0 released
https://mail.gnome.o[...]
2004-12-16
[51]
간행물
GTK+ 2.8.0 released
https://mail.gnome.o[...]
2005-08-13
[52]
간행물
GTK+ 2.10 released
https://mail.gnome.o[...]
2006-07-03
[53]
간행물
GTK+ 2.12 released
https://mail.gnome.o[...]
2007-09-14
[54]
간행물
GTK+ 2.14.0 released
https://mail.gnome.o[...]
2008-09-04
[55]
간행물
GTK+ 2.16.0 released
https://mail.gnome.o[...]
2009-03-13
[56]
간행물
GTK+ 2.18.0 released
https://mail.gnome.o[...]
2009-09-23
[57]
간행물
GTK+ 2.20.0 released
https://mail.gnome.o[...]
2010-03-23
[58]
간행물
GTK+ 2.22.0 released
https://mail.gnome.o[...]
2010-09-23
[59]
간행물
GTK+ 2.24.0
https://mail.gnome.o[...]
2011-01-20
[60]
웹사이트
Tags · GNOME / gtk · GitLab
https://gitlab.gnome[...]
2020-12-21
[61]
간행물
GTK+ 3.0.0 released
https://mail.gnome.o[...]
2011-02-10
[62]
웹사이트
Gtk+ 3.0 Theming API Hackfest
http://aruiz.typepad[...]
2017-06-03
[63]
웹사이트
Gtk+ 3 roadmap draft
http://testbit.eu/~t[...]
2017-06-03
[64]
웹사이트
Attic/ProjectRidley - GNOME Wiki!
https://wiki.gnome.o[...]
2014-03-29
[65]
간행물
GTK+ 3.2.0
https://mail.gnome.o[...]
2011-09-25
[66]
간행물
GTK+ 3.4.0 released
https://mail.gnome.o[...]
2012-03-26
[67]
간행물
GTK+ 3.6.0 released
https://mail.gnome.o[...]
2012-09-24
[68]
간행물
GTK+ 3.8.0 released
https://mail.gnome.o[...]
2013-03-25
[69]
웹사이트
Frame clock: GDK 3 Reference Manual
https://developer.gn[...]
2017-04-13
[70]
간행물
GTK+ 3.10.0 released
https://mail.gnome.o[...]
2013-09-23
[71]
간행물
GTK+ 3.12 released
https://mail.gnome.o[...]
2014-03-25
[72]
웹사이트
Client-side decorations in themes | Goings on
https://blogs.gnome.[...]
2013-12-05
[73]
간행물
GTK+ 3.14.0 released
https://mail.gnome.o[...]
2014-09-22
[74]
웹사이트
GtkInspector Author's blog entry
http://blogs.gnome.o[...]
2014-05-15
[75]
웹사이트
GtkInspector in GNOME wiki
https://wiki.gnome.o[...]
2014-05-15
[76]
웹사이트
Merging gestures into 3.14
https://www.phoronix[...]
2014-05-23
[77]
웹사이트
RFC: gestures
https://mail.gnome.o[...]
2014-03-04
[78]
웹사이트
gtk+ 3.13.2
https://mail.gnome.o[...]
2014-05-27
[79]
웹사이트
gtk+ 3.13.3
https://mail.gnome.o[...]
2014-06-24
[80]
간행물
GTK+ 3.16.0 released
https://mail.gnome.o[...]
2015-03-22
[81]
웹사이트
Linux-Desktop: Neues Gnome zeigt Nachrichten oben
http://www.heise.de/[...]
2015-03-25
[82]
웹사이트
GTK+ 3.16.0 released
https://mail.gnome.o[...]
[83]
웹사이트
GTK+ 3.18.0 Officially Released as Part of the GNOME 3.18 Desktop Environment
https://news.softped[...]
2015-09-24
[84]
간행물
GTK+ 3.20
https://mail.gnome.o[...]
2016-03-21
[85]
웹사이트
GTK+ 3.20 – Style Classes and Element Names
https://wiki.gnome.o[...]
2015-11-20
[86]
간행물
GTK+ 3.22 released
https://mail.gnome.o[...]
2016-09-21
[87]
웹사이트
GTK+ Wayland tablet support is merged – Carlos Garnacho
https://blogs.gnome.[...]
2016-04-06
[88]
웹사이트
hutterer input
https://www.x.org/wi[...]
[89]
웹사이트
GUADEC2013: Benjamin Otte talks about GTK+
http://videos.guadec[...]
GUADEC
[90]
웹사이트
Gtk 4.0 will not be stable until Gtk 4.6
https://blogs.gnome.[...]
2016-06-13
[91]
웹사이트
Gtk 5.0 will not be stable until Gtk 5.6
https://blogs.gnome.[...]
2016-06-14
[92]
간행물
gtk+ 3.24.0
https://mail.gnome.o[...]
2018-09-03
[93]
간행물
gtk+ 3.90.0
https://mail.gnome.o[...]
2017-03-31
[94]
웹사이트
Projects/GTK/Roadmap - GNOME Wiki!
https://wiki.gnome.o[...]
[95]
웹사이트
Commits · master · GNOME / gtk
https://gitlab.gnome[...]
[96]
간행물
gtk+ 3.92.1
https://mail.gnome.o[...]
2017-10-18
[97]
웹사이트
GTK+ 3.92
https://blog.gtk.org[...]
2017-10-23
[98]
웹사이트
GNOME 3.26 Released
https://www.gnome.or[...]
2017-09-13
[99]
간행물
gtk+ 3.94.0
https://mail.gnome.o[...]
2018-06-26
[100]
간행물
gtk 3.96
https://mail.gnome.o[...]
2019-05-07
[101]
웹사이트
Introducing amtk
https://developer.gn[...]
[102]
웹사이트
GTK 3.98
https://blog.gtk.org[...]
2020-02-13
[103]
간행물
gtk 4.3.1
https://mail.gnome.o[...]
2021-06-09
[104]
웹사이트
Emmanuele Bassi / guadec-2020
https://gitlab.gnome[...]
[105]
간행물
gtk 4.0.0
https://mail.gnome.o[...]
2020-12-16
[106]
메일링리스트
gtk 4.2.0
https://mail.gnome.o[...]
2021-03-30
[107]
메일링리스트
gtk 4.4.0
https://mail.gnome.o[...]
2021-08-23
[108]
메일링리스트
gtk 4.6.0
https://mail.gnome.o[...]
2021-12-30
[109]
웹사이트
gtk 4.8.0
https://gitlab.gnome[...]
2022-09-06
[110]
웹사이트
NEWS · 4.10.1 · GNOME / gtk · GitLab
https://gitlab.gnome[...]
2023-03-13
[111]
웹사이트
On deprecations – GTK Development Blog
https://blog.gtk.org[...]
2022-10-30
[112]
웹사이트
Project rename to "GTK"
https://mail.gnome.o[...]
GNOME
2019-02-06
[113]
뉴스
GTK+ renamed to GTK
https://lwn.net/Arti[...]
[114]
웹사이트
Language Bindings
http://www.gtk.org/l[...]
[115]
웹사이트
GNOME ART
http://art.gnome.org[...]
[116]
웹사이트
LinuxWorld - Where did Spencer Kimball and Peter Mattis go?
http://www.linuxworl[...]
[117]
웹사이트
What is the + in GTK+?
http://developer.gno[...]
[118]
문서
Projects/GTK/OSX
https://wiki.gnome.o[...]
[119]
웹사이트
GTK Download: Windows
https://www.gtk.org/[...]
[120]
웹사이트
GTK+ for Windows Runtime Environment
https://sourceforge.[...]
[121]
웹사이트
GTK+ for Windows Runtime Environment Installer (fork from http://gtk-win.sourceforge.net): tschoonj/GTK-for-Windows-Runtime-Environment-Installer
https://github.com/t[...]
[122]
메일링리스트
gtk 4.6.0
https://mail.gnome.o[...]
2021-12-30
[123]
메일링리스트
gtk 4.3.1
https://mail.gnome.o[...]
2021-06-09
[124]
웹인용
A brief description on how GTK was born.
https://www.gtk.org/[...]
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com
