# GTK# 简介

> 原文： [http://zetcode.com/gui/gtksharp/introduction/](http://zetcode.com/gui/gtksharp/introduction/)

这是 GTK# 编程入门教程。 本教程针对 C# 编程语言。 它已在 Linux 上创建并经过测试。 GTK# 编程教程适合新手和中级程序员。 这是本教程中使用的[图像](/img/gui/sharpgimg.tgz)。

## GTK+ 

GTK+  是用于创建图形用户界面的库。 该库是用 C 编程语言创建的。 GTK+ 库也称为 GIMP 工具包。 最初，该库是在开发 GIMP 图像处理器时创建的。 从那时起，GTK+ 成为 Linux 和 BSD Unix 下最受欢迎的工具包之一。 如今，开源世界中的大多数 GUI 软件都是在 Qt 或 GTK+ 中创建的。 GTK+ 是面向对象的应用编程接口。 面向对象的系统是使用 Glib 对象系统创建的，该系统是 GTK+ 库的基础。 `GObject`还可以为其他各种编程语言创建语言绑定。 存在用于 C++ ，Python，Perl，Java，C# 和其他编程语言的语言绑定。

GTK+ 本身取决于以下库。

*   Glib
*   Pango
*   ATK
*   GDK
*   GdkPixbuf
*   Cario

`Glib`是通用工具库。 它提供各种数据类型，字符串工具，启用错误报告，消息日志记录，使用线程和其他有用的编程功能。 `Pango`是一个使国际化的库。 `ATK`是辅助功能工具包。 该工具包提供的工具可帮助残障人士使用计算机。 `GDK`是底层图形系统提供的低级绘图和窗口功能的包装。 在 Linux 上，GDK 位于 X Server 和 GTK+ 库之间。 最近，它的许多功能已委托给 Cario 库。 `GdkPixbuf`库是用于图像加载和像素缓冲区操作的工具包。 Cario 是用于创建 2D 矢量图形的库。 自 2.8 版起，它已包含在 GTK+ 中。

Gnome 和 XFce 桌面环境已使用 GTK+ 库创建。 SWT 和 wxWidgets 是使用 GTK+ 的众所周知的编程框架。 使用 GTK+ 的著名软件应用包括 Firefox 或 Inkscape。

## GTK# 

GTK# 是针对 C# 编程语言的 GTK+ 的包装。 该库有助于使用 Mono 或任何其他兼容的 CLR 构建图形 GNOME 应用。 Gtk# 是一个事件驱动的系统，就像任何其他现代的窗口库一样，其中应用中的每个小部件都具有处理器方法，这些处理器方法在发生特定事件时被调用。 使用 Gtk# 构建的应用将在许多平台上运行，包括 Linux，Microsoft，Windows 和 Mac OSX。GTK# 是 Mono 计划的一部分。 Mono 中基本上有两个窗口小部件工具箱：Winforms 和 GTK# 。 GTK# 被认为是 Linux/Unix 操作系统的本机。

## 编译 GTK# 应用

我们使用 gmcs 编译器来编译我们的 GTK# 应用。

```cs
$ gmcs -pkg:gtk-sharp-2.0 -r:/usr/lib/mono/2.0/Mono.Cairo.dll application.cs

```

上一行编译了一个也使用 Cario 库的 GTK# 应用。

## 数据来源

*   [go-mono.com](http://www.go-mono.com)
*   [wikipedia.org](http://wwww.wikipedia.org)

在 GTK# 教程的这一部分中，我们介绍了 GTK# 库。