PROPHET

吾日三省吾身——为人谋而不忠乎?与朋友交而不信乎?传不习乎?

平平ID:bat603
163502次访问,排名446好友0人,关注者2
计算机、足球
bat603的文章
原创 123 篇
翻译 1 篇
转载 159 篇
评论 166 篇
最近评论
linhanjie:#Kevin 发表于2008-04-24 15:05:59 IP: 202.109.115.*
那么如果用私钥加密发出去的是不是不够安全,因为要用公钥解密,而公钥是公开的。


继续想想,数字签名就会知道答案了!!!
路过:Simon
你这样的才傻缺
自己无知说别人讲的乱七八糟
没文化真可怕
路过:Simon
你这样的才傻缺
自己无知说别人讲的乱七八糟
没文化真可怕
smile2008:pthread_id _threadId;错了
应改为
pthread_t _threadId;

太马虎了
linhanjie:你好!原创 利用libpcap分析网络上的数据包(入门级),看了这篇文章,我也挺关注的!我试了一下啊,通过路由器连接起来的局域网上。好像收到其他电脑的数据包啊!!!
qq : 110024218
文章分类
收藏
    相册
    同学的婚礼
    c/c++
    C++Builder天地
    masterlee
    shell入门
    stl
    STL 中文站
    网友
    linux
    exosip2
    Faq It
    GTK+ 2.0 Tree View Tutorial
    GTK+ 2.0 教程
    GTK+ FAQ
    GTK+2.0库函数
    GTK+中国社区
    huihoo
    Linux频道--中国IT实验室
    MYSQL入门教程
    OSIP2
    qtopia
    为LINUX服务
    嵌入式资讯网
    开源传万世,因有我参与
    陈皓专栏
    电子图书
    e书时空——电子书公益下载中心
    中华电脑书库
    中国E书网 -电子图书下载站
    电子图书
    电子图书下载E书中国电子图书免费下载
    西安信息资源网信息发布电子书下载E书下载
    朋友
    二小
    友亮的小屋
    妹妹
    张阿鹏
    曾在一个屋檐下的老勇
    狗狗窝
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    转载 gtk/glade程序开发(二)收藏

    新一篇: gtk/glade程序开发(三) | 旧一篇: gtk/glade程序开发(一)

    微调按钮构件(spin buttons)

    常用函数:

    创建微调按钮构件:
    /*创建微调按钮构件要用到“调整对象”,所以还要创建“调整对象”
     以下就是Glade自动创建的微调按钮构件,就用到了“调整对象”*/


    GtkObject *spinbutton1_adj;

    GtkWidget *spinbutton1;



    spinbutton1_adj = gtk_adjustment_new (1, 0, 100, 1, 10, 10);

    spinbutton1 = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton1_adj), 1, 0);


    这一节用到的新函数:
    取得微调按钮构件的当前值:
    函数名: gtk_spin_button_get_value_as_int
    用法:
                gfloat  spinvalue1;

    gint spinvalue2;

    spinvalue1=gtk_spin_button_get_value(GTK_SPIN_BUTTON(spinbutton));

    spinvalue2=gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(spinbutton));


    函数名: sprintf()
    用法: sprintf (buf, "%d", spinvalue1);

    函数名: lookup_widget()
    用法: GtkWidget *label1 = lookup_widget (GTK_WIDGET(spinbutton), "label1");

    一、用Glade设计界面
    步骤:1、新建glade工程
         2、依此放置 窗口(400,300)、固定位置、标签、微调按钮。
         3、为微调按钮构件,添加value_changed信号响应,object后填写:spinbutton1。
    4、设置微调按钮的一些属性:值、最小值、最大值、步进增量、页面增量、页面大小。(这些属性什么意思,自己捉摸捉摸。)    
    5、保存工程,并生成代码。

    二、修改代码

    Interface.c /*不作任何修改,看你的文件中的部分和这个一样不一样。*/

    g_signal_connect_swapped ((gpointer) spinbutton1, "value_changed",

    G_CALLBACK (on_spinbutton1_value_changed),

    GTK_OBJECT (spinbutton1));



    callbacks.h /*不作任何修改,看你的文件和这个一样不一样。*/



    void on_spinbutton1_value_changed (GtkSpinButton *spinbutton,

    gpointer user_data);

    callbacks.c



    void

    on_spinbutton1_value_changed (GtkSpinButton *spinbutton,

    gpointer user_data)

    {

    gchar buf[10];

    gint spinvalue1;



    GtkWidget *label1 = lookup_widget (GTK_WIDGET(spinbutton), "label1");

    spinvalue1 = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(spinbutton));

    sprintf (buf, "%d", spinvalue1);

    gtk_label_set_text(GTK_LABEL(label1),buf);

    }

    绘图区构件(drawingarea)

    常用函数:

    创建构件:
    /* */
    GtkWidget *drawingarea1;
    drawingarea1 = gtk_drawing_area_new ();

    这一节用到的新函数:

    函数名: gdk_gc_new /*新建画笔*/
    用法:
    GdkGC *gc1;
    gc1 = gdk_gc_new (drawingarea1->window);

    函数名: gdk_gc_set_rgb_fg_color /*设置画笔的前景色*/
    用法:
    GdkColor color;
    color.red = 30000;
    gdk_gc_set_rgb_fg_color (gc1, &color);

    函数名: gdk_draw_line /*画直线*/
    函数名: gdk_draw_rectangle /*画矩形*/

    一、用Glade设计界面
    步骤: 1、新建glade工程
         2、依此放置 窗口(400,300)、固定位置、按钮、绘图区。
         3、为按钮构件,添加clicked信号响应。
       4、保存工程,并生成代码。

    二、修改代码

    Interface.c /*不作任何修改,看你的文件中的部分和这个一样不一样。*/


    g_signal_connect ((gpointer) button1, "clicked",

    G_CALLBACK (on_button1_clicked),

    NULL);


    callbacks.h /*不作任何修改,看你的文件和这个一样不一样。*/


    callbacks.c

    void

    on_button1_clicked (GtkButton *button,

    gpointer user_data)

    {

    GtkWidget *drawingarea1 = lookup_widget (GTK_WIDGET(button), "drawingarea1");

    GdkGC gc1; /*定义画笔*/

    GdkColor color;                 /*定义颜色变量*/

    gc1 = gdk_gc_new (drawingarea1->window);     /*新建画笔*/



    color.red = 30000;                /*定义颜色*/

    gdk_gc_set_rgb_fg_color (gc1, &color);        /*设置画笔的前景色*/

    gdk_draw_line (drawingarea1->window,       /*画直线*/

    gc1,

    0,0,0,300 );



    color.red = 0;

    color.blue = 30000;                /*重新定义颜色*/

    gdk_gc_set_rgb_fg_color (gc1, &color);        /*设置画笔的前景色*/



    gdk_draw_rectangle (drawingarea1->window,      /*画矩形*/

    gc1,

    TRUE,

    50,

    50,

    100,

    100);

    }

    文件选择对话框构件(File chooser dialog)

    常用函数:

    创建 构件:
    /* */
    GtkWidget window2;
    window2 = create_filechooserdialog1 ();
    gtk_widget_show (window2);


    这一节用到的新函数:

    函数名: gtk_file_chooser_get_filename /*取得文件名*/
    用法:

    gchar * filename;
    filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (window2));


    说明:这一节涉及到在主窗口中调用对话框的问题,所以在callbacks.h中定义了一个全局指针变量,用于指向对话框。

    一、用Glade设计界面
    步骤: 1、新建glade工程
         2、依此放置 窗口(400,300)、固定位置、按钮、文件选择对话框。
         3、为按钮构件、文件选择对话框里的“取消”、“打开”按钮,添加clicked信号响应。
         4、保存工程,并生成代码。

    二、修改代码
    修改代码以前,把工程属性设置为“win32控制台程序”


    Main.c

    去掉以下部分:/*在linux下用Anjuta IDE设计时,就没有这一部分。*/

    GtkWidget *fontselectiondialog1;

    fontselectiondialog1 = create_fontselectiondialog1 ();

    gtk_widget_show (fontselectiondialog1);



    Interface.c /*不作任何修改,看你的文件中的部分和这个一样不一样。*/



    create_window1

    g_signal_connect ((gpointer) button1, "clicked",

    G_CALLBACK (on_button1_clicked),

    NULL);



    create_filechooserdialog1

    g_signal_connect ((gpointer) button2, "clicked",

    G_CALLBACK (on_button2_clicked),

    NULL);

    g_signal_connect ((gpointer) button3, "clicked",

    G_CALLBACK (on_button3_clicked),

    NULL);



    callbacks.h /*看你的文件和这个一样不一样。*/



    gchar *filename; /*用于存放得到的文件名*/   (全局变量)

    GtkWidget *window2;    /*指向对话框的指针变量(全局),通过它访问对话框。*/



    void on_button1_clicked (GtkButton *button,

    gpointer user_data);

    void on_button2_clicked (GtkButton *button,

    gpointer user_data);

    void on_button3_clicked (GtkButton *button,

    gpointer user_data);



    callbacks.c



    void on_button1_clicked (GtkButton button,   /*对应主窗口上的按钮,用于创建对话框*/

    gpointer user_data)

    {

    window2 = create_filechooserdialog1 ();

    gtk_widget_show (window2);

    }



    void on_button2_clicked (GtkButton *button,    /*对话框上的“取消”按钮*/

    gpointer user_data)

    {

    g_print("No file is select\n");

    gtk_widget_destroy (window2);   /*去除对话框*/

    }



    void on_button3_clicked (GtkButton button,    /*对话框上的“打开”按钮*/

    gpointer user_data)

    {

    filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (window2)); /*取得对话框中的文件名*/

    g_print("The file is: \n");

    g_print(filename);

    gtk_widget_destroy (window2);                       /*去除对话框*/

    }


     

    发表于 @ 2006年08月23日 00:42:00|评论(loading...)|编辑

    新一篇: gtk/glade程序开发(三) | 旧一篇: gtk/glade程序开发(一)

    评论:没有评论。

    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © rainfish