_________________安装准备___________________
#查看是否已安装了相关软件如:pkg-config --modversion pango可以查看当前的pango版本
pkg-config --modversion xxxxxx
#先将原版的gtk等软件卸载掉
apt-get remove xxxxxx
#gcc,gdb,make等编译工具
apt-get install build-essential
#pkg-config 工具 (编译 GTK 程序时自动找出头文件及库文件位置)
apt-get install pkg-config
_________________安装gtk+_________________
#开发相关的库文件:libgtk2.0-dev libglib2.0-dev
apt-get install libgtk2.0-dev libglib2.0-dev
#或直接安装gnome开发环境:gnome-core-devel
apt-get install gnome-core-devel
#gtk+和glib的API参考文档
apt-get install libgtk2.0-doc libglib2.0-doc
#函数文档查看器:devhelp
apt-get install devhelp
#基于GTK的界面构造程序:glade libglade2-dev
at-get install glade libglade2-dev
#gnome开发环境的其他软件和帮助文档(可选)
apt-get install gnome-devel gnome-devel-docs
__________________测试程序___________________
#include <gtk/gtk.h>
gint on_window_delete_event(GtkWidget *, gpointer);
void on_window_destroy(GtkWidget *, gpointer);
void on_button_clicked(GtkWidget *, gpointer);
int main(int argc, char *argv[])
{
GtkWidget *window, *button;
gtk_init(&argc, &argv);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(window), "a button gtk window");
gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
gtk_window_set_default_size(GTK_WINDOW(window), 100, 40);
button = gtk_button_new_with_label("Hello");
gtk_container_add(GTK_CONTAINER(window), button);
g_signal_connect(G_OBJECT(window), "delete_event",
G_CALLBACK(on_window_delete_event), NULL);
g_signal_connect(G_OBJECT(window), "destroy",
G_CALLBACK(on_window_destroy), NULL);
g_signal_connect(G_OBJECT(button), "clicked",
G_CALLBACK(on_button_clicked), NULL);
gtk_widget_show(button);
gtk_widget_show(window);
gtk_main();
return 0;
}
gint on_window_delete_event(GtkWidget *window, gpointer gdata)
{
g_print("Quiting...\n");
return FALSE;
}
void on_window_destroy(GtkWidget *window, gpointer gdata)
{
gtk_main_quit();
}
void on_button_clicked(GtkWidget *button, gpointer gdata)
{
g_print("Hellow GTK+!\n");
}
编译运行
$ gcc -Wall gtktest.c -o gtktest `pkg-config --cflags --libs gtk+-2.0`
$ ./gtktest
#查看是否已安装了相关软件如:pkg-config --modversion pango可以查看当前的pango版本
pkg-config --modversion xxxxxx
#先将原版的gtk等软件卸载掉
apt-get remove xxxxxx
#gcc,gdb,make等编译工具
apt-get install build-essential
#pkg-config 工具 (编译 GTK 程序时自动找出头文件及库文件位置)
apt-get install pkg-config
_________________安装gtk+_________________
#开发相关的库文件:libgtk2.0-dev libglib2.0-dev
apt-get install libgtk2.0-dev libglib2.0-dev
#或直接安装gnome开发环境:gnome-core-devel
apt-get install gnome-core-devel
#gtk+和glib的API参考文档
apt-get install libgtk2.0-doc libglib2.0-doc
#函数文档查看器:devhelp
apt-get install devhelp
#基于GTK的界面构造程序:glade libglade2-dev
at-get install glade libglade2-dev
#gnome开发环境的其他软件和帮助文档(可选)
apt-get install gnome-devel gnome-devel-docs
__________________测试程序___________________
#include <gtk/gtk.h>
gint on_window_delete_event(GtkWidget *, gpointer);
void on_window_destroy(GtkWidget *, gpointer);
void on_button_clicked(GtkWidget *, gpointer);
int main(int argc, char *argv[])
{
GtkWidget *window, *button;
gtk_init(&argc, &argv);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(window), "a button gtk window");
gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
gtk_window_set_default_size(GTK_WINDOW(window), 100, 40);
button = gtk_button_new_with_label("Hello");
gtk_container_add(GTK_CONTAINER(window), button);
g_signal_connect(G_OBJECT(window), "delete_event",
G_CALLBACK(on_window_delete_event), NULL);
g_signal_connect(G_OBJECT(window), "destroy",
G_CALLBACK(on_window_destroy), NULL);
g_signal_connect(G_OBJECT(button), "clicked",
G_CALLBACK(on_button_clicked), NULL);
gtk_widget_show(button);
gtk_widget_show(window);
gtk_main();
return 0;
}
gint on_window_delete_event(GtkWidget *window, gpointer gdata)
{
g_print("Quiting...\n");
return FALSE;
}
void on_window_destroy(GtkWidget *window, gpointer gdata)
{
gtk_main_quit();
}
void on_button_clicked(GtkWidget *button, gpointer gdata)
{
g_print("Hellow GTK+!\n");
}
编译运行
$ gcc -Wall gtktest.c -o gtktest `pkg-config --cflags --libs gtk+-2.0`
$ ./gtktest