GTK+按钮

举报
yd_221104950 发表于 2020/12/02 22:46:12 2020/12/02
【摘要】 Demo #include <gtk/gtk.h> static void quick_message(GtkWindow *parent,gchar *message){ g_print ("Hello GTK+\n"); } static void activateApp(GtkApplication *app,gpointer user_data)...

Demo

#include <gtk/gtk.h>
static void quick_message(GtkWindow *parent,gchar *message){ g_print ("Hello GTK+\n");
}

static void activateApp(GtkApplication *app,gpointer user_data){ GtkWidget *window; // 按钮 GtkWidget *button; // 申明一个容器,用于容纳按钮,控制大小 GtkWidget *button_box; window = gtk_application_window_new(app); gtk_window_set_title(GTK_WINDOW(window),"Hello Qt"); gtk_window_set_default_size(GTK_WINDOW(window),200,300); // 创建一个容纳器 button_box = gtk_button_box_new(GTK_ORIENTATION_HORIZONTAL); // 将容纳器放入window中 gtk_container_add(GTK_CONTAINER(window),button_box); // 创建一个按钮 button = gtk_button_new_with_label("Open"); // 连接点击信号 g_signal_connect(button,"clicked",G_CALLBACK(quick_message),NULL); // 将按钮放入容纳器中 gtk_container_add(GTK_CONTAINER(button_box),button); gtk_widget_show_all(window);

}
int main(int argc,char **argv){ GtkApplication *app; int status; app = gtk_application_new("wong.com",G_APPLICATION_FLAGS_NONE); g_signal_connect(app,"activate",G_CALLBACK(activateApp),NULL); status = g_application_run(G_APPLICATION(app),argc,argv); g_object_unref(app); return status;
}


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40

代码解释

  • 创建按钮容纳器gtk_button_box_new()
  • 将容纳器放入window中
  • 创建一个按钮gtk_button_new_with_label();
  • 注册点击事件(通过信号来通信)g_signal_connect(button,“clicked”,G_CALLBACK(quick_message),NULL);
  • 将按钮放入容纳器中 gtk_container_add(GTK_CONTAINER(button_box),button);

如果我们要增加一个带有自定义图片的按钮可以通过下列方式来实现:

 GtkWidget *button; GtkWidget *button_box; GtkWidget *image; button = gtk_button_new(); // 图片文件的路径 image = gtk_image_new_from_file("./internet.png"); gtk_container_add(GTK_CONTAINER(button),image); button_box = gtk_button_box_new(GTK_ORIENTATION_HORIZONTAL); gtk_container_add(GTK_CONTAINER(button_box),button);


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

谢谢阅读

文章来源: blog.csdn.net,作者:WongKyunban,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/weixin_40763897/article/details/102746612

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。