The simplest window

最简单的窗口

目的:创建一个最简单的窗口,并显示出来。

效果:

clip_image002

源码main.c

#include <gtk/gtk.h>

int main(int argc ,char *argv[])
{

GtkWidget *window;

gtk_init(&argc,&argv);

window = gtk_window_new(GTK_WINDOW_TOPLEVEL);

gtk_widget_show(window);

gtk_main();

return FALSE;
}

编译为:


gcc -o hello main.c `pkg-config --libs --cflags gtk+-2.0`

install gtk on Ubuntu Distribution

ubuntu上安装gtk

Refer from: http://www.cnblogs.com/niocai/archive/2011/07/15/2107472.html

我利用此方法成功在UBUNTU 10.04下安装GTK 2.20.1

一、安装

  1、安装gcc/g++/gdb/make 等基本编程工具

$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*

  

二、查看GTK库版本

  1、查看1.2.x版本

$pkg-config –modversion gtk+

  2、查看 2.x 版本

$pkg-config –modversion gtk+-2.0

  3、查看pkg-config的版本

$pkg-config –version

  4、查看是否安装了gtk

$pkg-config –list-all grep gtk

  

三、测试程序

 

//Helloworld.c

#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 until the application is closed */
    gtk_main();
   
   
return 0
;
}

 

  

四、编译运行

  1、编译

$gcc -o Helloworld Helloworld.c `pkg-config –cflags –libs gtk+-2.0`

  2、运行

$./Helloworld

 

compile a simple glib program

编译Glib应用程序

       为了编译一个使用了Glib的应用程序,需要保证编译程序所用的包含保存Glib头文件的目录,还需要链接Glib库本身。

程序描述

       测试简单的Glib程序。

程序效果

clip_image002

程序代码

#include <glib.h>
gint main(gint argc,gchar *argv[])
{
    g_print("Hello, we will compiled and linked with GLibn");
    return 0;
}

 

程序说明

l  g_print函数是Glib自己的printf版本,但是进行了灵巧的变化,你可以用自己的代码覆盖调用g_print时执行的缺省Glib代码;

l  关于gint都是为了以后真正用的时候好习惯;

l  编译使用gcc,当然也可以使用cc(最开始发明和发布c语言时使用的名称),对于多个操作系统转换时,cc总体上更好一些。

程序编译

gcc -o main main.c `pkg-config glib-2.0 –cflags –libs`

a simple gtk window

程序描述:最简单的一个创建窗口的示例

程序效果:

clip_image002

程序代码:

#include <gtk/gtk.h>

//PROTOTYPES

void CloseRequest(GtkWidget *theWindow, gpointer data);

gint main(gint argc,gchar *argv[])

{

    GtkWidget *window;

    //get GTK+ to process the startup arguments

    gtk_init(&argc,&argv);

    //create the app’s main window

    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);

    //connect a window’s signal to a signal function

    gtk_signal_connect(GTK_OBJECT(window),“destroy”,GTK_SIGNAL_FUNC(CloseRequest),NULL);

    gtk_widget_show(window);

    gtk_main();

    return 0;

}

//function to handle a close signal on the window

void CloseRequest(GtkWidget *theWindow,gpointer data)

{

    gtk_main_quit();

}

 

程序编译:

gcc –Wall –o test main.c `pkg-config gtk+-2.0 –libs –cflags`