我是靠谱客的博主 缥缈海燕,最近开发中收集的这篇文章主要介绍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);

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

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

谢谢阅读

最后

以上就是缥缈海燕为你收集整理的GTK+按钮的全部内容,希望文章能够帮你解决GTK+按钮所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部