萬維百科

GTK

(重新導向自GTK+)
GTK
GTK logo.svg
gtk3-widget-factory是展示GTK +版本3中許多GUI小控制項範例的集合
gtk3-widget-factory是展示GTK +版本3中許多GUI小控制項範例的集合
原作者Spencer Kimball英語Spencer Kimball (computer programmer)Peter Mattis英語Peter MattiseXperimental Computing Facility英語eXperimental Computing Facility
開發者GNOME計劃
初始版本1998年4月14日,​24年前​(1998-04-14
穩定版本4.8.1(2022年9月16日,​1天前​(2022-09-16[±]
原始碼庫 編輯維基數據鏈結
程式語言C語言
作業系統Linux類Unix系統macOSMicrosoft Windows
類型部件工具箱
授權條款GNU較寬鬆公共許可證2.1
網站gtk.org

GTK(原名GTK+)最初是GIMP的專用開發庫(GIMP Toolkit),後來發展為Unix-like系統下開發圖形介面的應用程式的主流開發工具之一。GTK是自由軟體,並且是GNU計劃的一部分。自2019年2月6日起,GTK+改名為GTK。

程式語言

GTK使用C語言開發,但是其設計者使用物件導向技術。也提供了C++gtkmm)、PerlRubyJavaPython(PyGTK)繫結,其他的繫結有AdaDHaskellPHP和所有的.NET程式語言。

與其他很多部件工具箱不同,GTK並不基於Xt。這一決策優劣互見:優點是GTK可以應用於其他系統,其靈活性也很強;而缺點就是它無法利用以傳統方法為X11客製化的X資源資料庫。GTK最早應用於X Window System,如今已移植至其他平台,諸如Microsoft WindowsDirectFB,以及Mac OS X平台上的Quartz.

Glade是一個介面設計工具,但是它也包含了一種描述GUI介面的XML語言,它和libglade一起工作就可以直接使用GTK和GNOME控制項;新的Glade-3不再直接支援生成程式語言原始碼

外觀和視覺

提供不同的顯示引擎使得終端使用者可以客製化外觀和視覺。目前已經有一些可以模仿其他流行的平台或者工具箱(例如Windows 95MotifQt或者NEXTSTEP)的引擎。

執行在Xfce4上的GIMP 2.0的快照

使用

使用GTK的環境
  • GNOME是以GTK為基礎,就是說為GNOME編寫的程式使用GTK做為其工具箱。
  • Xfce也基於GTK,但是它的應用程式並不對很多其他程式有依賴。(這就是"GNOME程式"和"GTK程式"的不同。)
  • LXDE也基於GTK,一個盡可能減少套件相依性的桌面環境。
  • GPE Palmtop環境和Nokia網際網路平板電腦的框架Maemo基於GTK。

這只是一部分,另外,GTK也可以運行在KDE的環境下。而且GTK也可以在Microsoft Windows運行,另外還有DirectFBncurses

使用GTK的視窗管理員

GTK應用程式

以下程式都是使用GTK開發、屬於開源軟體,可以執行於Linux/UnixWindowsmacOS等多種作業系統平台上。

  • Firefox-Mozilla基金會的網頁瀏覽器。
  • Geany-代碼編輯器
  • GIMP-類似於Photoshop的圖像處理程式
  • Inkscape-類似於IllustratorCorelDraw的向量圖形繪製工具
  • Pidgin-支援多種協定(IRC、Gtalk、Yahoo Talk、MSN等等)的聊天工具
  • gcin-一種在Linux、Windows系統上常見的輸入法平台

版本歷史

主要版本發佈日期主要增強最後次要版本
1.0頁面存檔備份,存於網際網路檔案館1998年4月14日第一個穩定版本1.0.6
1.2頁面存檔備份,存於網際網路檔案館1999年2月27日新增部件(GtkFontSelectorGtkPackerGtkItemFactoryGtkCTreeGtkInvisibleGtkCalendar、GtkLayoutGtkPlugGtkSocket1.2.10頁面存檔備份,存於網際網路檔案館
2.0頁面存檔備份,存於網際網路檔案館2002年3月11日GObject, UnicodeUTF-8)支援2.0.9
2.2頁面存檔備份,存於網際網路檔案館2002年12月22日Multihead support2.2.4
2.4頁面存檔備份,存於網際網路檔案館2004年3月16日新增部件(GtkFileChooser、GtkComboBox、GtkComboBoxEntry、GtkExpander、GtkFontButton、GtkColorButton)2.4.14頁面存檔備份,存於網際網路檔案館
2.6頁面存檔備份,存於網際網路檔案館2004年12月16日New widgets(GtkIconView, GtkAboutDialog, GtkCellView).
最後一個支援Windows 98/Me的版本
2.6.10頁面存檔備份,存於網際網路檔案館
2.8頁面存檔備份,存於網際網路檔案館2005年8月13日Cairo integration2.8.20頁面存檔備份,存於網際網路檔案館
2.10頁面存檔備份,存於網際網路檔案館2006年7月3日新增部件(GtkStatusIcon、GtkAssistant、GtkLinkButton、GtkRecentChooser)以及列印支援(GtkPrintOperation)2.10.14頁面存檔備份,存於網際網路檔案館
2.12頁面存檔備份,存於網際網路檔案館2007年9月14日GtkBuilder2.12.12頁面存檔備份,存於網際網路檔案館
2.14頁面存檔備份,存於網際網路檔案館2008年9月4日Jpeg2000 load support2.14.7頁面存檔備份,存於網際網路檔案館
2.16頁面存檔備份,存於網際網路檔案館2009年3月13日New GtkOrientable, Caps Lock warning in password Entry.
Improvement on GtkScale, GtkStatusIcon, GtkFileChooser.
2.16.6頁面存檔備份,存於網際網路檔案館
2.18頁面存檔備份,存於網際網路檔案館2009年9月23日New GtkInfoBar. Improvement on file chooser, printing.
GDK has been rewritten to use 'client-side windows'
2.18.9頁面存檔備份,存於網際網路檔案館
2.20頁面存檔備份,存於網際網路檔案館2010年3月23日New GtkSpinner and GtkToolPalette, GtkOffscreenWindow. Improvement on file chooser,
keyboard handling, GDK.Introspection data is now included in GTK
2.20.1頁面存檔備份,存於網際網路檔案館
2.22頁面存檔備份,存於網際網路檔案館2010年9月23日gdk-pixbuf moved to separate module, most GDK drawing are based on Cairo,
many internal data are now private and can be sealed in preparation to GTK3
2.22.1頁面存檔備份,存於網際網路檔案館
2.24頁面存檔備份,存於網際網路檔案館2011年1月30日New simple combo box widget (GtkComboBoxText) added, the cups print backend can send print jobs as PDF,
GtkBuilder has gained support for text tags and menu toolbuttons and many introspection annotation fixes were added
2.24.0頁面存檔備份,存於網際網路檔案館
3.0頁面存檔備份,存於網際網路檔案館2011年2月10日Cairo, more X11 agnostic, XInput2, CSS-based theme API3.0.0頁面存檔備份,存於網際網路檔案館

圖形無關代碼

最初GTK包括一些和圖形無關的常規功能,如連結串列二元樹資料結構。這些基本功能和物件系統GObject已經合併到獨立的Glib,它被程式設計師專門用於開發不需要圖形介面的代碼。

GTK 2

2002年3月11日,GTK2.0版正式釋出。GTK 2是GTK後繼版本,其新特性包括使用Pango改進的文字彩現、新主題引擎、使用ATK改進的可達性、完全轉換到使用UTF-8Unicode和更靈活的API。但是它和GTK 1不完全相容,因此必須由程式設計師做移植工作。由於GTK 1更快、相對更簡單或更加適合嵌入式應用,所以還被繼續使用。

從GTK 2的2.8版起,它依靠程式庫Cairo完成彩現,而這引入了向量圖形的支援。

發展

Ridley專案正在嘗試統一一系列和GTK相關的庫,包括libgnome、libgnomeui、libgnomeprint、libgnomeprintui、libglade、libgnomecanvas、libegg、libeel和gtkglext。

GTK hello world

GTK hello world以C撰寫,本程式含有窗口,標題是"Hello, World".

#include<gtk/gtk.h>intmain(intargc,char*argv[]){GtkWidget*window;GtkWidget*label;gtk_init(&argc,&argv);/* create the main, top level, window */window=gtk_window_new(GTK_WINDOW_TOPLEVEL);/* give it the title */gtk_window_set_title(GTK_WINDOW(window),"Hello World");/* Connect the destroy signal of the window to gtk_main_quit     * When the window is about to be destroyed we get a notification and     * stop the main GTK loop     */g_signal_connect(window,"destroy",G_CALLBACK(gtk_main_quit),NULL);/* Create the "Hello, World" label  */label=gtk_label_new("Hello, World");/* and insert it into the main window  */gtk_container_add(GTK_CONTAINER(window),label);/* make sure that everything, window and label, are visible */gtk_widget_show_all(window);/* start the main loop, and let it rest there until the application is closed */gtk_main();return0;}

GTK Runtime Environment for Windows

由於GTK主要是作為Unix-like系統底下的介面,在Windows使用該系統所開發的軟體時就需要用到GTK執行環境,即GTK Runtime Environment for Windows。這個軟體與GTK不同的地方在於它僅僅是為了執行軟體用途而製作,以解決Windows沒有內建GTK函式庫的問題。

參見

參考資料

外部連結


本頁面最後修訂於2022-09-20 02:44,點擊更新本頁查看原網頁

本站的所有資料包括但不限於文字、圖片等全部轉載於維基百科(wikipedia.org),遵循 維基百科:CC BY-SA 3.0協議


頂部

如果本頁面有數學、化學、物理等公式未正確顯示,請使用Firefox瀏覽器或者Safari瀏覽器