GTK

✍ dations ◷ 2025-12-09 10:29:54 #应用程序接口,GNU,GNU计划软件,使用LGPL许可证的软件,部件工具箱,软件开发,GTK

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

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)的引擎。

这只是一部分,另外,GTK也可以运行在KDE的环境下。而且GTK也可以在Microsoft Windows运行,另外还有DirectFB和ncurses。

以下程序都是使用GTK开发、属于开源软件,可以运行于Linux/Unix,Windows,macOS等多种操作系统平台上。

最初GTK包括一些和图形无关的常规功能,如链表和二叉树等数据结构。这些基本功能和对象系统GObject已经合并到独立的库Glib,它被程序员专门用于开发不需要图形界面的代码。

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以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库的问题。

相关

  • J·B·布森戈尚-巴蒂斯塔·约瑟夫·条冬内·布珊高(法语:Jean-Baptiste Joseph Dieudonné Boussingault,1801年2月1日-1887年5月11日),法国化学家,对农业科学、石油科学与冶金学都有贡献。曾提
  • 耳环耳环又称耳坠,是戴在耳朵的饰品,古代又称珥、珰。大部分耳环都是金属的,有些可能是石头、木、或其他相似的硬物料。不管男女都戴耳环。耳环透过一个在耳珠内的穿洞来勾住耳朵(除
  • 弯螺属弯螺属(学名:),又名中华草包蜗牛属,是一种会呼吸空气的陆地蜗牛,属于扭蜗牛总科扭蜗牛科草包蜗牛亚科的陆上有肺类腹足纲软体动物本属的学名源于-(中华)+(草包蜗牛属),也就是本属在台湾
  • 拉里·卡萨诺夫拉里·卡萨诺夫(Larry Kasanoff,1959年—),美国极限娱乐集团(英语:Threshold Entertainment)董事长兼首席执行官。该集团旗下有极限娱乐、极限动漫(Threshold Animation Studios)黑带
  • 钱锺韩钱锺韩(1911年6月2日-2002年2月8日),江苏无锡人,中国工程热物理和自动化专家,中国机电结合的动力工程学科的创建者。钱锺韩1927年7月毕业于无锡辅仁中学。1933年7月毕业于交通大学
  • 山居岁月《普罗旺斯的一年》(),又译为《山居岁月》,是一本英国作家彼德·梅尔(Peter Mayle)于1989所出版的自传型散文集。这本书叙述作者与家人(主要是他的太太和3条狗)于1986年迁居法国南部
  • 玉带凤蝶共有22个亚种,详阅正文。玉带凤蝶(学名:,英文俗名:Common Mormon,别名:白带凤蝶、.mw-parser-output ruby.zy{text-align:justify;text-justify:none}.mw-parser-output ruby.zy>rp
  • 常德志常得志,隋朝官员,京兆(今陕西省西安市)人。常得志博学善于写文章,官至秦王记室。秦王杨俊去世,常得志经过旧时的宫殿,作五言诗,文辞悲壮,很被当时人所看重。又写了《兄弟论》,立意也值
  • 韩洪 (唐朝)韩洪(?-756年),唐朝大臣,京兆长安人,韩休的儿子,韩滉、韩洄的哥哥。韩洪为司库员外郎。御史大夫王�犯法,籍没其家,韩洪兄长韩浩为万年县主簿,对王�家财有所隐匿,被京兆尹鲜于仲通揭发,配放
  • 多罗特亚·埃尔克斯勒本多罗特亚·克里斯蒂安·埃尔克斯勒本(Dorothea Christiane Erxleben,本姓Leporin,1715年11月13日-1762年6月13日)是德国第一位女医生,也是世界上第一位获得监管医疗机构许可从事医