• gtk+学习笔记(二)


    如何创建一个按钮呢,直接贴代码把,有详细的注释。

     1 #include<gtk/gtk.h>
     2 gint data_count=1;
     3 void on_button_clicked (GtkWidget *button,gpointer data)//定义button这个按钮点击后发生的事件
     4 {
     5     g_print("hello world.");
     6     g_print("%d
    ",data_count);
     7     data_count=data_count+1;
     8 }
     9 int main(int argc,char* argv[])
    10 {
    11     GtkWidget *window;
    12     GtkWidget *button;
    13     gtk_init(&argc,&argv);
    14     window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    15     g_signal_connect(G_OBJECT(window),"delete_event",G_CALLBACK(gtk_main_quit),NULL);
    16     /*为window这个窗口传来的信号(这个语句中为"delete_event",这一信号在窗口关闭时发生)连接回调函数(本句中为gtk_main_quit这个函数,需要用G_CALLBACK宏来转换一下),最后一个参数为传递给回调函数的参数,值的类型应该为gpointer,不是的话可以强制转换,如果没有参数则为NULL*/
    17 
    18     gtk_window_set_title(GTK_WINDOW(window),"程序");
    19     gtk_window_set_default_size(GTK_WINDOW(window),500,100);
    20     gtk_window_set_position(GTK_WINDOW(window),GTK_WIN_POS_CENTER);
    21     /*设置窗口的默认位置,最后一个参数这里是居中的意思,还有GTK_WIN_POS_MOUSE出现在鼠标位置,GTK_WIN_POS_NONE不固定,GTK_WIN_POS_CENTER_ALWAYS窗口改变尺寸仍然居中,GTK_WIN_POS_CENTER_ON_PARENT居于父窗口的中部*/
    22     gtk_container_set_border_width(GTK_CONTAINER(window),50);
    23     /*设定容器的边框宽度,这里为给window这个窗口设定边框宽度*/
    24     button = gtk_button_new_with_label("按下此按钮");
    25     /*创建一个带文字标签的按钮*/
    26     g_signal_connect(G_OBJECT(button),"clicked",G_CALLBACK(on_button_clicked),(gpointer)data_count);
    27     /*g_signal_connect宏有四个参数,分别为连接信号控件的指针,信号名称,回调函数,以及传递给回调函数的参数,回调函数需要用G_CALLBACK宏强制转换*/
    28 
    29     gtk_container_add(GTK_CONTAINER(window),button);
    30     /*将第二个参数代表的控件(这里为button)加入到第一个参数所代表的容器中,第一个参数需要用GTK_CONTAINER这个宏强制转换*/
    31 
    32     //gtk_widget_show(button);
    33     //gtk_widget_show(window);
    34 
    35     /*上面两句可用下面一句来代替*/
    36     gtk_widget_show_all(window);
    37 
    38     gtk_main();
    39     return FALSE;
    40 
    41 }

    有些语句昨天已经说过了,这里就不在加注释,还是多练习,才能熟能生巧。

  • 相关阅读:
    【博弈】UVA10561 Treblecross
    2021牛客暑期多校训练营2 部分题解
    2021牛客暑期多校训练营1 部分题解
    变量
    第六次作业
    第五次作业
    第四次作业
    第三次作业
    第二次作业
    c#下载网页源码的两种方法
  • 原文地址:https://www.cnblogs.com/kingos/p/4534782.html
Copyright © 2020-2023  润新知