chatgpt: linux 下用纯c 编写一按钮,当按钮按下在一新窗口显示本机主目录下图片子目录中的1.jpg图片

tmd,这chatgpt太强大了。

从下面的c程序与python程序对比,纯c的ui编程也不是太复杂。

再说一次,要想学好编程必须要用上这个chatgpt工具。

在 Linux 环境下使用纯 C 语言编写一个按钮,当按钮按下时,在一个新窗口中显示本机主目录下图片子目录中的 1.jpg 图片。我们可以使用 GTK 库来实现这个功能。GTK 是一个用于创建图形用户界面的跨平台工具包。我们还需要使用 GdkPixbuf 库来处理图像。

以下是一个示例程序,它创建一个窗口,包含一个按钮。当按钮被按下时,会弹出一个新窗口并显示 1.jpg 图片。

首先,确保你的系统已经安装了 GTK 库和 GdkPixbuf 库。如果没有,可以使用以下命令安装:

sudo apt-get install libgtk-3-dev
sudo apt-get install libgdk-pixbuf2.0-dev
#include <gtk/gtk.h>

// 回调函数,当按钮被按下时调用
static void on_button_clicked(GtkWidget *widget, gpointer data) {
    GtkWidget *image_window;
    GtkWidget *image;
    GdkPixbuf *pixbuf;
    gchar *filename = g_strdup_printf("%s/Pictures/1.jpg", g_get_home_dir());
    
    // 创建一个新窗口
    image_window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_window_set_title(GTK_WINDOW(image_window), "Image Display");
    gtk_container_set_border_width(GTK_CONTAINER(image_window), 10);
    gtk_window_set_default_size(GTK_WINDOW(image_window), 800, 600);
    
    // 加载图像
    pixbuf = gdk_pixbuf_new_from_file(filename, NULL);
    if (!pixbuf) {
        g_print("Error loading file: %s\n", filename);
        return;
    }
    
    // 创建图像控件
    image = gtk_image_new_from_pixbuf(pixbuf);
    
    // 将图像控件添加到窗口中
    gtk_container_add(GTK_CONTAINER(image_window), image);
    
    // 显示所有窗口内的控件
    gtk_widget_show_all(image_window);
    
    // 释放资源
    g_object_unref(pixbuf);
    g_free(filename);
}

int main(int argc, char *argv[]) {
    GtkWidget *window;
    GtkWidget *button;
    
    // 初始化 GTK
    gtk_init(&argc, &argv);
    
    // 创建一个新窗口
    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_window_set_title(GTK_WINDOW(window), "Show Image Button");
    gtk_container_set_border_width(GTK_CONTAINER(window), 10);
    gtk_window_set_default_size(GTK_WINDOW(window), 200, 100);
    
    // 当窗口关闭时,退出 GTK 主循环
    g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);
    
    // 创建一个按钮,并设置按钮标签
    button = gtk_button_new_with_label("Show Image");
    
    // 当按钮被按下时,调用回调函数 on_button_clicked
    g_signal_connect(button, "clicked", G_CALLBACK(on_button_clicked), NULL);
    
    // 将按钮添加到窗口中
    gtk_container_add(GTK_CONTAINER(window), button);
    
    // 显示所有窗口内的控件
    gtk_widget_show_all(window);
    
    // 进入 GTK 主循环
    gtk_main();
    
    return 0;
}

保存上述代码到一个名为 show_image_button.c 的文件中,然后使用以下命令编译并运行该程序:

gcc show_image_button.c -o show_image_button `pkg-config --cflags --libs gtk+-3.0 gdk-pixbuf-2.0`
./show_image_button

当你运行该程序时,会出现一个窗口,包含一个标签为 "Show Image" 的按钮。点击按钮后,会弹出一个新窗口,并显示本机主目录下图片子目录中的 1.jpg 图片。如果图片文件不存在或路径不正确,请确保文件路径正确,并且图片文件位于指定位置。

 

 

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值