zoukankan      html  css  js  c++  java
  • glade 使用指南(2)

    上次我们已经知道了glade的基本使用方法了,现在我们用他来做点有用的事

    先让我们在上次建的window1中加点东西,
    首先是一个vertical box,如图:


    然后是一个label,如图:

    之后再建个horizontal box,如图:

    而后来两个button,如图:


    更改button和label的label、Border width、Padding、width、height、X pad,Y pad等位置参数,
    如果你改过名字的话,下面的程序中调用的参数会有点变化。
    自我感觉良好后,保存。大致如图:



    接下来的比较的关键部分了,我们造好了外表,现在要处理内在了。
    添加几个signal后保存,如下图:
    window1



    count+1 button



    quit  button



    让我们添加几个函数到原来的程序中去
    glade.c

      1 #include <glade/glade.h>
      2 #include <gtk/gtk.h>
      3
      4 static int count;
      5
      6 /*when we click the button ,we make count add one ,
      7  *and show the answer on the label
      8  */
      9 void on_button1_clicked(gpointer userdata)
     10 {
     11     gchar buf[16];
     12     snprintf(buf,16,"%d",++count);
     13
     14     printf("%s/n",buf);
     15     gtk_label_set_label(GTK_LABEL(userdata),buf);
     16 }
     17
     18 /*when click the button quit,we wuit*/
     19 void on_button2_clicked(GtkButton *button, gpointer userdate)
     20 {
     21     gtk_main_quit();
     22 }
     23
     24 int main(int argc, char **argv)
     25 {
     26
     27     GladeXML *window;
     28
     29     gtk_init(&argc, &argv);
     30
     31     window=glade_xml_new("project6.glade",NULL,NULL);
     32
     33     glade_xml_signal_autoconnect(window);
     34
     35     gtk_main();
     36
     37     return 0;
     38 }

    有人一定奇怪最后没有函数调用就实现了那上面的两个signal都能用
    libglade的文档上是这么说的
    The some_signal_handler_func function is not referenced anywhere in the program explicitely, but if any signals are defined in the interface description that use "some_signal_handler_func" as the handler name, then this function will automatically be connected.
    可见是glade_xml_signal_autoconnect解决了这个问题。

    下面让我们重复之前的步骤编译下
    gcc -o window glade.c `pkg-config --libs --cflags libglade-2.0` -export-dynamic
    如果更正出现的问题,接着./window
    点击击上面的button测试下,没问题?很好。
    有问题,那么核对你的signal设置,必要时适当调整下button1的signal函数

    good luck
  • 相关阅读:
    js字符串拼接 ·${}·
    [转]CRLF Injection
    域渗透-GPP(组策略)利用
    AS-REPRoasting
    域用户名枚举
    我理解的HTTP请求走私(HTTP Request Smuggling)
    NFS未授权访问
    Hessian反序列化RCE漏洞
    CVE-2020-15778 Openssh命令注入漏洞复现
    在非域内机器上运行harphound
  • 原文地址:https://www.cnblogs.com/zelos/p/3402915.html
Copyright © 2011-2022 走看看