GTK安装及测试

作者:disappearedgod
文章出处:http://blog.csdn.net/disappearedgod/article/details/47021231

时间:2015-8-14


实验条件:unbuntu 14.04 LTS

实验时间:2015年8月14日

安装的代码


 sudo apt-get install build-essential
 sudo apt-get install gnome-core-devel
sudo apt-get install pkg-config
sudo apt-get install glade libglade2-devsudo 
apt-get install libgtk2.0-devsudo 
apt-get install gnome-devel gnome-devel-docs


一些可以参考的说明


$sudo apt-get install build-essential

2、安装 libgtk2.0-dev libglib2.0-dev 等开发相关的库文件

$sudo apt-get install gnome-core-devel 

3、用于在编译GTK程序时自动找出头文件及库文件位置  

$sudo apt-get install pkg-config

4、安装 devhelp GTK文档查看程序

$sudo apt-get install devhelp

5、安装 gtk/glib 的API参考手册及其它帮助文档

$sudo apt-get install libglib2.0-doc libgtk2.0-doc

6、安装基于GTK的界面GTK是开发Gnome窗口的c/c++语言图形库 

$sudo apt-get install glade libglade2-dev
或者
$sudo apt-get install glade-gnome glade-common glade-doc

7、安装gtk2.0 或者 将gtk+2.0所需的所有文件统通下载安装完毕

$sudo apt-get install libgtk2.0-dev
或者
$sudo apt-get install libgtk2.0*


还有一些需要注意的:安装gcc/g++/gdb/make 等基本编程工具

查看pkg-config的版本

sudo apt-get install pkg-config
  安装必要组建:(在root权限下)

apt-get install gnome-devel gnome-devel-docs

测试


#include 
void hello(GtkWidget *widget,gpointer data)
{
	g_print("Hello Ubuntu!\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 Ubuntu!");
	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 -o Helloworld Helloworld.c `pkg-config --cflags --libs gtk+-2.0`
$./Helloworld

可以直接用命令"gcc `pkg-config -cflags -libs gtk+2.0` hello.c -o hello"来编译上面的代码,但最好做一个Makefile文件内容如下:

CC = gcc
all:
	$(CC) `pkg-config --cflags --libs gtk+-2.0` hello.c -o hello

这样的话可以用make命令来编译,使得简单了许多,也不容易出错了。再次强调的是关于引号的问题,很多初学者常犯这个错误,[`]是[~]下面的那个单引号,而非['];这涉及到了LINUX SHELL编程中的命令引用,LINUX下的标准的BASH是支持命令引用的,而其它的SHELL就不一定了。

下两图分别为程序的运行时的窗口和点击Hello World按钮弹出的对话框:




你可能感兴趣的:(GTK+)