没事儿找事儿————gtk学习(给窗体添加按钮)

       上一篇完善了一下窗体,但是仅仅一个窗体没有什么用,我们需要大量的其他控件。那么我们慢慢来。先从最基本的按钮开始!在上篇的基础上稍微修改代码。

#include
void on_button_clicked(GtkWidget *button,gpointer userdata)
{g_print("你好,你已经点击了我");g_print("%s\n",(gchar *)userdata);gtk_button_set_label(GTK_BUTTON(button),(gchar *)userdata);
}
int main(int argc, char *argv[])
{GtkWidget *window;GtkWidget       *button;gchar *str = "I love gtk!";gtk_init (&argc, &argv);window = gtk_window_new (GTK_WINDOW_TOPLEVEL);gtk_window_set_title (GTK_WINDOW (window), "Hello World 添加按钮");gtk_window_set_default_size(GTK_WINDOW(window),400,300);gtk_window_set_position(GTK_WINDOW(window),GTK_WIN_POS_CENTER);gtk_container_set_border_width(GTK_CONTAINER(window),40);g_signal_connect(G_OBJECT(window),"delete_event",G_CALLBACK(gtk_main_quit),NULL);button = gtk_button_new_with_label("点击我");g_signal_connect(G_OBJECT(button),"clicked",G_CALLBACK(on_button_clicked),(gpointer)str);gtk_container_add(GTK_CONTAINER(window),button);gtk_widget_show (button);gtk_widget_show (window);gtk_main ();return 0;
}


        gtk控件是统一用GtkWidget类型来管理的,按钮控件也不例外。我们可以用gtk_button_new来创建一个不显示任何东西的按钮。也可以用gtk_button_new_with_label来创建一个带有文字标签的按钮。
       gtk函数的特色是以gtk开头,用下划线连接。第二个词表示控件的类型,后面的词表示要做的动作。比如new_with_label。set_default_size和set_position等等基本能见其名知其意。
      gtk中的控件摆放采用容器这个概念。gtk所有的控件能分成两类,一类是能容纳其他控件的容器,一类是不能容纳其他控件的非容器控件。容器控件有分成能容纳多个控件的容器和只能容纳一个控件的容器。
      窗口控件也是一种容器,它可以容纳按钮控件。gtk_container_add函数的作用是将第二个参数代表的控件加入到,第一个参数
 所代表的容器中来。第一个参数是GtkContainer型的指针。所有需要GTK_CONTAINER这个宏来进行转换。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部