GTK2 入门:Ubuntu搭建GTK2环境

本人使用的是Ubuntu 10.10不同版本可能有所差异

1 配置GCC
刚装好的系统中已经有GCC了,但是这个GCC什么文件都不能编译,因为没有一些必须的头文件,所以要安装build-essential这个软件包,安装了这个包会自动安装上g++,libc6-dev,linux-libc-dev,libstdc++6-4.1-dev等一些必须的软件和头文件的库。
可以在新立得里面搜索build-essential或输入下面命令:

sudo apt-get install build-essential

安装完成后写一个C语言程序testc.c测试一下。

C++代码
#include<stdio.h>  
int main()  
{  
   printf("Hello Sina!\n");  
   return 0;  
}  


$ gcc testc.c -o testc
$ ./testc

显示
Hello MM!
这样,C语言编译器就安装成功了;

2 安装GTK环境 【Linux公社  】

安装GTK环境只要安装一个gnome-core-devel就可以了,里面集成了很多其他的包。除此之外还要转一些其他的东西,如 libglib2.0-doc、libgtk2.0-doc帮助文档,devhelp帮助文档查看,glade-gnome、glade-common、 glade-doc图形界面设计等。

sudo apt-get install gnome-core-devel
sudo apt-get install libglib2.0-doc libgtk2.0-doc
sudo apt-get install devhelp
sudo apt-get install glade-gnome glade-common glade-doc

安装完成后我们也同样做个测试程序

代码:
C++代码
#include<gtk/gtk.h>  
void hello(GtkWidget *widget,gpointer data)  
{  
g_print("Hello GClinux!\n");  
}  
gint delete_event(GtkWidget *widget,GdkEvent *event,gpointer data)  
{  
g_print ("delete event occurred\n");  
return(TRUE);  
}  
void destroy(GtkWidget *widget,gpointer data)  
{  
gtk_main_quit();  
}  
int main( int argc, char *argv[] )  
{  
GtkWidget *window;  
GtkWidget *button;  
gtk_init (&argc, &argv);  
window=gtk_window_new (GTK_WINDOW_TOPLEVEL);  
gtk_signal_connect (GTK_OBJECT(window),"delete_event",GTK_SIGNAL_FUNC(delete_event),NULL);  
gtk_signal_connect (GTK_OBJECT (window), "destroy",GTK_SIGNAL_FUNC (destroy), NULL);  
gtk_container_set_border_width (GTK_CONTAINER (window), 10);  
button = gtk_button_new_with_label ("hello !");  
gtk_signal_connect (GTK_OBJECT (button), "clicked",GTK_SIGNAL_FUNC (hello), NULL);  
gtk_signal_connect_object (GTK_OBJECT (button), "clicked",GTK_SIGNAL_FUNC (gtk_widget_destroy),GTK_OBJECT (window));  
gtk_container_add (GTK_CONTAINER (window), button);  
gtk_widget_show (button);  
gtk_widget_show (window);     
gtk_main();     
return(0);  
}  

用下面命令编译运行

代码:
$ gcc gtkhello.c -o gtktest `pkg-config --cflags --libs gtk+-2.0`
$ ./gtktest

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wwsfyp.html