zoukankan      html  css  js  c++  java
  • GTK安装

    上面是linux下GTK+配置所需要的库,关于各个库的功能,查看http://www.gtk.org/overview.php,至于库的下载在http://www.gtk.org/download/linux.php

    linux下GTK+的一键安装和配置:(fedora16和centos下配置成功)

    必要组件:

    # yum install gtk2 gtk2-devel gtk2-devel-docs

    可选组件:

    # yum install gnome-devel gnome-devel-docs

    查看是否已经安装gtk

    $ pkg-config --list-all |grep gtk

    显示结果一般如下
    gtk+-unix-print-2.0 GTK+ - GTK+ Unix print support
    gtk+-x11-2.0 GTK+ - GTK+ Graphical UI Library (x11 target)
    pygtk-2.0 PyGTK - Python bindings for GTK+ and related libraries
    gtk+-2.0 GTK+ - GTK+ Graphical UI Library (x11 target)
    gtk-doc gtk-doc - API documentation generator

    安装好之后,写个程序测试下

    #include <gtk/gtk.h>  
      
    int main(int argc, char *argv[])  
    {  
        GtkWidget *windows;  
        gtk_init(&argc,&argv);  
          
        windows = gtk_window_new(GTK_WINDOW_TOPLEVEL);  

    gtk_window_set_title(GTK_WINDOW(windows), "Hello,World");
        gtk_widget_show(windows);  
      
        gtk_main();  
      
        return 0;  
    } 
    

      

    GTK+程序的编译链接执行

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

    命令说明:    gcc 编译命令

                         hello.c 源程序文件名

                         -o 编译参数,(不是0(零),是opq的o)

                         hello编译连接后的可执行文件名,可以为任意合法的文件名

                         `   这个符号是和~呆在一起的那个键上,不要误认为是单引号‘

                         pkg后面与-config之间没有空格

                         cflags 前面是两个短线 --

                     libs前面也是两个短线 --

    运行程序

    键入 ./hello后回车便可看到效果了。

    需要注意的是,该程序当你点击窗口右上角上的小X关闭窗口时,窗口倒是关闭了。但是程序还在运行,你必须在终端下按组合键:Ctrl+c来关闭进程。

    程序分析

    GtkWidget *windows; 相当于Windows下的WNDCLASS结构体,不过window在此只是一个窗口指针,用于指向函数gtk_window_new()函数返回的窗口地址而已。

    gtk_init(&argc,&argv);初始化界面库等一系列操作的函数,当其调用失败时,其将终止我们的程序,目前只要记住在编写任何窗口函数之前,都保证该函数是第一个被调用的就行了。

    windows=gtk_window_new(GTK_WINDOW_TOPLEVEL);该函数创建一个新的GtkWidget对象(目前我认为其就是创建了一个还没有显示的窗 口),并返回该对象的指针。该函数参数仅有两个,其中一个是上面的GTK_WINDOW_TOPLEVEL,表示创建一个“主窗口”,另一个则是 GTK_WINDOW_POPUP,表示创建一个弹出窗口。

    gtk_window_set_title(GTK_WINDOW(windows),”Hello,World”);该函数设置窗口的标题。

    gtk_widget_show(windows); 该函数将窗口显示出来。

    gtk_main();该函数捕获一些消息吧。在没有调用函数gtk_main_quit()函数之前,即使你关闭窗口,进程也不关闭的原因就在此。

    八、总结

    创建窗口主要步骤:

    1、GtkWidget *windows;

    2、gtk_init(&argc,&argv);

    3、windows=gtk_window_new(GTK_WINDOW_TOPLEVEL);

    4、gtk_widget_show(windows);

    5、gtk_main();

  • 相关阅读:
    后台取得非服务器控件的一种方法(Request.Form.GetKey(i))
    扩展jQuery键盘事件的几个基本方法(练习jQuery插件扩展)
    Javascript得到CheckBoxList的Value
    sql server的count(小技巧)
    oracle数据库约束条件删除、取消、启用
    iis7.0修改网站端口
    session模式和web园
    理解Session State模式+ASP.NET SESSION丢失FAQ (转)
    Gridview中生成的属性rules="all",在Firefox出现内线框解决办法
    一个类windows系统的效果图
  • 原文地址:https://www.cnblogs.com/delmory/p/4023272.html
Copyright © 2011-2022 走看看