0
点赞
收藏
分享

微信扫一扫

GTK+按钮


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;
}

代码解释

  • 创建按钮容纳器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);

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

*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);

谢谢阅读


举报

相关推荐

0 条评论