GTK atau GIMP Toolkit adalah sebuah toolkit gawit lintas platform untuk menghasilkan GUI. GTK adalah salah satu toolkit terpopuler untuk Sistem X Window, bersama-sama dengan Qt.

GTK
Contoh kumpulan widget GTK 3
TipeKerangka kerja aplikasi dan Peralatan gawit Edit nilai pada Wikidata
Versi pertama14 April 1998; 26 tahun lalu (1998-04-14)
Versi stabil
4.16.7 (24 November 2024) Edit nilai pada Wikidata
GenreWidget toolkit
LisensiLGPLv2.1+
Bahasa
EponimGIMP Edit nilai pada Wikidata
Karakteristik teknis
Sistem operasiLinux, Mirip Unix, Windows, OS X
PlatformLintas platform Edit nilai pada Wikidata
Bahasa pemrogramanC (mul) Terjemahkan Edit nilai pada Wikidata
Informasi pengembang
PembuatSpencer Kimball, Peter Mattis
PengembangThe GNOME Project, eXperimental Computing Facility (XCF)
Informasi tambahan
Situs webwww.gtk.org
Stack ExchangeEtiqueta Edit nilai pada Wikidata
SourceForgegtk-mingw Edit nilai pada Wikidata
Free Software DirectoryGtk+ Edit nilai pada Wikidata
Panduan penggunaLaman panduan Edit nilai pada Wikidata
Sunting di Wikidata Sunting di Wikidata • Sunting kotak info • L • B
Info templat
Bantuan penggunaan templat ini

GTK mulanya dibuat untuk GNU Image Manipulation Program, sebuah penyunting grafik raster, pada 1997 oleh Spencer Kimball dan Peter Mattis, anggota eXperimental Computing Facility di University of California, Berkeley.

Dilisensikan di bawah GNU Lesser General Public License, GTK adalah perangkat lunak bebas dan bagian dari Proyek GNU.

Desain

GTK ditulis di dalam bahasa pemrograman C, dan desainnya menggunakan sistem objek GObject. Platform GNOME menyediakan language binding (ikatan bahasa) untuk:[3]

Yang lainnya telah menuliskan beberapa binding untuk banyak bahasa pemrograman lainnya (seperti C Sharp, Fortran, Haskell, Java, Lua, Ocaml, Pascal, Pike, PHP, Ruby, Tcl, dan Euphoria). GTK-server menyediakan antarmuka IPC bagi GTK yang memungkinkannya digunakan dari beraneka bahasa dengan kapabilitas I/O, termasuk shell script.[4] Binding untuk banyak bahasa dapat dibangkitkan secara automatik melalui GObject-introspection.

Salah satu languange binding untuk GTK yang menggunakan GObject-introspection diantaranya PyGObject, Vala, GJS dan seed.

Seperti Qt, tetapi tidak sama dengan beberapa toolkit widget lainnya, GTK tidak didasarkan pada Xt. Ini memungkinkan fleksibilitas dan memungkinkan GTK dapat digunakan pada semua platform yang tidak memiliki Sistem X Window. Tetapi, tanpa kebergantungan ini, GTK memiliki kelemahan akses terhadap basis data X resources, cara tradisional untuk mengkustomisasi aplikasi-aplikasi X11.

GTK mulanya menyertakan beberapa rutin utilitas yang tidak secara tegas berhubungan dengan grafik, misalnya menyediakan beberapa struktur data sebagai daftar-daftar yang saling terpaut dan beberapa pohon biner. Utilitas-utilitas umum sedemikian, bersama-sama dengan sistem objek disebut GObject, kini telah bermigrasi menjadi pustaka terpisah, GLib, yang dapat digunakan para programer untuk mengembangkan kode yang tidak memerlukan antarmuka grafis.

Platform

GTK mulanya ditargetkan pada Sistem X Window, dan masih menyisakan platform target utamanya. Platform lain yang ditargetkan adalah Microsoft Windows (Windows 2000 dan yang lebih baru, hampir didukung sepenuhnya), DirectFB, dan Quartz (Mac OS X v10.4 dan yang lebih baru, masih dikembangkan).

Tampilan dan citarasa

Pengguna-akhir dapat mengonfigurasi tampilan toolkit-nya, hingga kepada pemberian sejumlah mesin tampilan yang berbeda. Mesin-mesin yang ada yang berupaya mengemulasi tampilan toolkit atau platform popular lainnya seperti Windows 95, Motif, Qt dan NEXTSTEP.

Sejarah

GTK+ 2 adalah pengganti GTK+ 1. Fitur-fitur barunya antara lain render teks yang diperbaiki menggunakan Pango, mesin tema baru, aksesibilitas yang diperbaiki menggunakan Accessibility Toolkit, peralihan sepenuhnya ke Unicode menggunakan string-string UTF-8 dan API yang lebih fleksibel. Tetapi, GTK+ 2 kurang kompatibel dengan GTK+ 1, dan para programer harus menge-port aplikasi ke GTK+ 2.

Mulai versi 2.8, GTK+ 2 bergantung kepada pustaka Cairo untuk merender grafik vektor pada GTK+ 2.

GTK+ 3.0 merupakan pembaruan besar yang dirilis pada bulan Februari 2011 sebagai pengganti dari GTK+ 2. Fitur-fitur utama barunya mencakup pembaruan penanganan perangkat input, API tema baru menggunakan CSS untuk membuat tema, dukungan untuk memilih beberapa backend untuk GDK saat runtime, beberapa widget baru, dan masih banyak lagi.[5]

Huruf '+' pada GTK+ dihilangkan menjadi GTK saja pada saat Hackaton.[6]

GTK 4 yang merupakan versi terbaru dari GTK, dirilis pada Desember 2020. GTK 4 menghadirkan fitur-fitur baru seperti perenderan menggunakan Vulkan, pembaruan untuk API drag-and-drop, dukungan untuk shaders, dan masih banyak lagi.[7]

GTK hello world

Sampel 1

#include <gtk/gtk.h>

int main (int argc, char argv[])
{
    gtk_init (&argc,  &argv);
    GtkWidget * window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
    gtk_window_set_default_size (GTK_WINDOW (window), 400 , 400);
    gtk_window_set_tile (GTK_WINDOW (window), "Hello World! ");
    g_signal_connect (G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL);
    gtk_main (); 
    return 0;
}

Sampel 2

#include <gtk/gtk.h>

int main (int argc, char argv[])
{
    gtk_init (&argc,  &argv);
    GtkWidget * window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
    gtk_window_set_default_size (GTK_WINDOW (window), 400 , 400);
    gtk_window_set_tile (GTK_WINDOW (window), "Hello GTK!\nHello World GTK Sample");
    g_signal_connect (G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL);
    gtk_main (); 
    return 0;
}

Penggunaan

Lingkungan yang menggunakan GTK

Pengelola jendela

Aplikasi

Beberapa aplikasi terkenal yang menggunakan GTK sebagai toolkit widget-nya adalah:

  • AbiWord - Pengolah kata
  • CinePaint (bekas FilmGimp) - Penyunting grafik beranimasi HDR Raster
  • Ekiga (bekas GnomeMeeting) - Perangkat lunak telepon VoIP H.323/SIP
  • Evolution - Alat kirim-terima surat elektronik
  • Firefox - alat selancar web
  • GIMP - Penyunting grafik raster
  • Gnumeric - Perangkat lunak lembar hampar
  • Chromium - Alat selancar web yang didasarkan pada Webkit dan sebagian besar dikembangkan oleh Google
  • GRAMPS - Perangkat lunak genealogi
  • Inkscape - Penyunting grafik vektor SVG
  • K-3D - Program animasi dan pemodelan 3-dimensi yang bebas
  • Marionnet - Simulator jejaring interaktif
  • Midori - Alat selancar web portabel
  • Nero Linux - Program autorisasi media cakram
  • Pidgin - Pesan instan
  • VMware Player - Mesin virtual
  • Wireshark - Analis, dekode, dan capture paket (diganti dengan Qt sejak versi 1.11.0[8])

Lihat pula

Referensi

  1. ^ Clasen, Matthias (7 Februari 2021). "gtk 4.0.3". GNOME Mail Services mailing list. https://mail.gnome.org/archives/ftp-release-list/2021-February/msg00015.html. Diakses pada 22 Februari 2021. 
  2. ^ Clasen, Matthias (31 Januari 2021). "gtk 4.1.0". GNOME Mail Services mailing list. https://mail.gnome.org/archives/ftp-release-list/2021-January/msg00100.html. Diakses pada 22 Februari 2021. 
  3. ^ "Language Bindings". The GTK Project. Diakses tanggal 23 Februari 2021. 
  4. ^ http://www.gtk.org/language-bindings.html
  5. ^ "February 2011 – GTK Development Blog" (dalam bahasa Inggris). Diakses tanggal 2021-02-23. 
  6. ^ "Rename some references to GTK+ (d080be3e) · Commits · GNOME / gtk". GitLab (dalam bahasa Inggris). Diakses tanggal 2021-02-23. 
  7. ^ "GTK 4.0 – GTK Development Blog" (dalam bahasa Inggris). Diakses tanggal 2021-02-23. 
  8. ^ "We're switching to Qt. | Sniff free or die" (dalam bahasa Inggris). Diakses tanggal 2021-02-23. 

Pranala luar