GTK+

GTK+最初是GIMP的专用开发库,后来发展为Unix-like系統下开发图形界面的应用程序的主流开发工具之一。GTK+是自由软件,并且是GNU计划的一部分。GTK+的许可协议是LGPL

目录

  [隐藏]

[编辑]编程语言

GTK+使用C语言开发,但是其设计者使用面向对象技术。 也提供了C++gtkmm)、PerlRubyJavaPython(PyGTK)绑定,其他的绑定有AdaDHaskellPHP和所有的.NET编程语言。

与其他很多部件工具箱不同,GTK+ 并不基于Xt。这一决策优劣互见:优点是GTK+ 可以应用于其他系统,其灵活性也很强;而缺点就是它无法利用以传统方法为X11定制的X资源数据库。GTK+ 最早應用於X Window System,如今已移植至其他平台,諸如Microsoft WindowsDirectFB,以及QuartzMac OS X.

Glade是一个界面设计工具,但是它也包含了一种描述GUI界面的XML语言,它和libglade一起工作就可以直接使用GTK和GNOME控件;新的Glade-3不再直接支持生成编程语言源代码

使用

使用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+开发、属于开源软件,可以运行于LinuxUnixWindowsMac等多种操作系统平台上。


图形无关代码

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

[编辑]GTK+ 2

2002年3月11日,GTK+2.0版正式发布。GTK+ 2是GTK+ 后继版本,其新特性包括使用Pango改进的文本渲染、新主题引擎、使用ATK改进的可达性、完全转换到使用UTF-8Unicode和更灵活的API。但是它和GTK+ 1不完全兼容,因此必须由程序员做移植工作。由于GTK+ 1更快、相对更简单或更加适合嵌入式应用,所以还被继续使用。

从GTK+ 2的2.8版起,它依靠Cairo完成渲染,而这引入了矢量图形的支持。 GTK+目前的最新版本是GTK+ 2.17.0 unstabale release。

[编辑]发展

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+函式庫的問題。

你可能感兴趣的:(编程,windows,linux,quartz,Maemo)