fbpx
维基百科

GTK

GTK(原名GTK+)最初是GIMP的专用开发库(GIMP Toolkit),后来发展为Unix-like系統下开发图形界面的应用程序的主流开发工具之一。GTK是自由软件,并且是GNU计划的一部分。自2019年2月6日起,GTK+改名为GTK。[3]

GTK
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.3 (2022年12月22日;穩定版本)[1]
源代码库
  • gitlab.gnome.org/GNOME/gtk
编程语言C语言[2]
操作系统Linux类Unix系统macOSMicrosoft Windows
类型部件工具箱
许可协议GNU宽通用公共许可证2.1
网站gtk.org

编程语言

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、GtkLayoutGtkPlugGtkSocket 1.2.10 (页面存档备份,存于互联网档案馆
2.0 (页面存档备份,存于互联网档案馆 2002年3月11日 GObject, UnicodeUTF-8)支援 2.0.9
2.2 (页面存档备份,存于互联网档案馆 2002年12月22日 Multihead support 2.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 integration 2.8.20 (页面存档备份,存于互联网档案馆
2.10 (页面存档备份,存于互联网档案馆 2006年7月3日 新增部件(GtkStatusIcon、GtkAssistant、GtkLinkButton、GtkRecentChooser)以及列印支援(GtkPrintOperation) 2.10.14 (页面存档备份,存于互联网档案馆
2.12 (页面存档备份,存于互联网档案馆 2007年9月14日 GtkBuilder 2.12.12 (页面存档备份,存于互联网档案馆
2.14 (页面存档备份,存于互联网档案馆 2008年9月4日 Jpeg2000 load support 2.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 API 3.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>  int main (int argc, 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 ();  return 0;  } 

GTK Runtime Environment for Windows

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

参见

參考資料

  1. ^ 4.8.3. 2022年12月22日 [2022年12月22日]. 
  2. ^ The GTK Open Source Project on Ohloh. Ohloh.net. [2014-02-17]. (原始内容于2013-12-08). 
  3. ^ Project rename to "GTK". mail.gnome.org. [2019-02-10]. (原始内容于2020-11-07). 

外部链接

由于技术限制, 重定向至此, 关于, net的库, 请见, 原名, 最初是gimp的专用开发库, gimp, toolkit, 后来发展为unix, like系統下开发图形界面的应用程序的主流开发工具之一, 是自由软件, 并且是gnu计划的一部分, 自2019年2月6日起, 改名为, gtk3, widget, factory是展示, 版本3中許多gui小控件示例的集合原作者spencer, kimball, 英语, spencer, kimball, computer, programmer, peter, ma. 由于技术限制 Gtk 重定向至此 关于 NET的库 请见 Gtk GTK 原名GTK 最初是GIMP的专用开发库 GIMP Toolkit 后来发展为Unix like系統下开发图形界面的应用程序的主流开发工具之一 GTK是自由软件 并且是GNU计划的一部分 自2019年2月6日起 GTK 改名为GTK 3 GTKgtk3 widget factory是展示GTK 版本3中許多GUI小控件示例的集合原作者Spencer Kimball 英语 Spencer Kimball computer programmer Peter Mattis 英语 Peter Mattis eXperimental Computing Facility 英语 eXperimental Computing Facility 開發者GNOME計劃初始版本1998年4月14日 24年前 1998 04 14 目前版本4 8 3 2022年12月22日 穩定版本 1 源代码库gitlab wbr gnome wbr org wbr GNOME wbr gtk编程语言C语言 2 操作系统Linux 类Unix系统 macOS Microsoft Windows类型部件工具箱许可协议GNU宽通用公共许可证2 1网站gtk wbr org 目录 1 编程语言 2 外观和视觉 3 使用 3 1 GTK应用程序 4 版本歷史 5 图形无关代码 6 GTK 2 7 发展 8 GTK hello world 9 GTK Runtime Environment for Windows 10 参见 11 參考資料 12 外部链接编程语言 编辑GTK使用C语言开发 但是其设计者使用面向对象技术 也提供了C gtkmm Perl Ruby Java和Python PyGTK 绑定 其他的绑定有Ada D Haskell PHP和所有的 NET编程语言 与其他很多部件工具箱不同 GTK并不基于Xt 这一决策优劣互见 优点是GTK可以应用于其他系统 其灵活性也很强 而缺点就是它无法利用以传统方法为X11定制的X资源数据库 GTK最早應用於X Window System 如今已移植至其他平台 諸如Microsoft Windows DirectFB 以及Mac OS X平台上的Quartz Glade是一个界面设计工具 但是它也包含了一种描述GUI界面的XML语言 它和libglade一起工作就可以直接使用GTK和GNOME控件 新的Glade 3不再直接支持生成编程语言源代码 外观和视觉 编辑提供不同的显示引擎使得最终用户可以定制外观和视觉 目前已经有一些可以模仿其他流行的平台或者工具箱 例如Windows 95 Motif Qt或者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運行 另外還有DirectFB和ncurses 使用GTK的窗口管理器Metacity和Xfwm4使用GTK 3 GTK应用程序 编辑 以下程序都是使用GTK开发 属于开源软件 可以运行于Linux Unix Windows macOS等多种操作系统平台上 Firefox Mozilla基金會的網頁瀏覽器 Geany 代码编辑器 GIMP 类似于Photoshop的图像处理程序 Inkscape 类似于Illustrator CorelDraw的矢量图形绘制工具 Pidgin 支持多种协议 IRC Gtalk Yahoo Talk MSN等等 的聊天工具 gcin 一種在Linux Windows系統上常見的輸入法平台版本歷史 编辑主要版本 發佈日期 主要增強 最後次要版本1 0 页面存档备份 存于互联网档案馆 1998年4月14日 第一個穩定版本 1 0 61 2 页面存档备份 存于互联网档案馆 1999年2月27日 新增部件 GtkFontSelector wbr GtkPacker wbr GtkItemFactory wbr GtkCTree wbr GtkInvisible wbr GtkCalendar GtkLayout wbr GtkPlug wbr GtkSocket 1 2 10 页面存档备份 存于互联网档案馆 2 0 页面存档备份 存于互联网档案馆 2002年3月11日 GObject Unicode UTF 8 支援 2 0 92 2 页面存档备份 存于互联网档案馆 2002年12月22日 Multihead support 2 2 42 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 integration 2 8 20 页面存档备份 存于互联网档案馆 2 10 页面存档备份 存于互联网档案馆 2006年7月3日 新增部件 GtkStatusIcon GtkAssistant GtkLinkButton GtkRecentChooser 以及列印支援 GtkPrintOperation 2 10 14 页面存档备份 存于互联网档案馆 2 12 页面存档备份 存于互联网档案馆 2007年9月14日 GtkBuilder 2 12 12 页面存档备份 存于互联网档案馆 2 14 页面存档备份 存于互联网档案馆 2008年9月4日 Jpeg2000 load support 2 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 API 3 0 0 页面存档备份 存于互联网档案馆 图形无关代码 编辑最初GTK包括一些和图形无关的常规功能 如链表和二叉树等数据结构 这些基本功能和对象系统GObject已经合并到独立的库Glib 它被程序员专门用于开发不需要图形界面的代码 GTK 2 编辑2002年3月11日 GTK2 0版正式发布 GTK 2是GTK后继版本 其新特性包括使用Pango改进的文本渲染 新主题引擎 使用ATK改进的可达性 完全转换到使用UTF 8的Unicode和更灵活的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 lt gtk gtk h gt int main int argc char argv GtkWidget window GtkWidget label gtk init amp argc amp 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 return 0 GTK Runtime Environment for Windows 编辑由於GTK主要是作為Unix like系統底下的介面 在Windows使用該系統所開發的軟體時就需要用到GTK執行環境 即GTK Runtime Environment for Windows 這個軟體與GTK不同的地方在於它僅僅是為了執行軟體用途而製作 以解決Windows沒有內建GTK函式庫的問題 参见 编辑Gtk GTK的 NET API PyGTK GTK的Python API Qt Motif wxWidgets參考資料 编辑 4 8 3 2022年12月22日 2022年12月22日 The GTK Open Source Project on Ohloh Ohloh net 2014 02 17 原始内容存档于2013 12 08 Project rename to GTK mail gnome org 2019 02 10 原始内容存档于2020 11 07 外部链接 编辑维基共享资源中相关的多媒体资源 GTKGTK主页 页面存档备份 存于互联网档案馆 开放式目录计划中和GTK相关的内容 取自 https zh wikipedia org w index php title GTK amp oldid 73340458, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。