当前位置: 首页 > news >正文

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;// 初始化 GTKgtk_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_clickedg_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 图片。如果图片文件不存在或路径不正确,请确保文件路径正确,并且图片文件位于指定位置。

 

 

 

相关文章:

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

tmd,这chatgpt太强大了。 从下面的c程序与python程序对比&#xff0c;纯c的ui编程也不是太复杂。 再说一次&#xff0c;要想学好编程必须要用上这个chatgpt工具。 在 Linux 环境下使用纯 C 语言编写一个按钮&#xff0c;当按钮按下时&#xff0c;在一个新窗口中显示本机主目…...

SherlockChain:基于高级AI实现的智能合约安全分析框架

关于SherlockChain SherlockChain是一款功能强大的智能合约安全分析框架&#xff0c;该工具整合了Slither工具&#xff08;一款针对智能合约的安全工具&#xff09;的功能&#xff0c;并引入了高级人工智能模型&#xff0c;旨在辅助广大研究人员针对Solidity、Vyper和Plutus智…...

MySQL中Explain执行计划各参数的含义

EXPLAIN 语句输出的各个列的作用先大致罗列一下&#xff1a; 列名 描述 id 在一个大的查询语句中每个SELECT关键字都对应一个唯一的id select_type SELECT关键字对应的那个查询的类型 table 表名 partitions 匹配的分区信息 type 针对单表的访问方法 possible_keys…...

Redis队列自研组件

背景 年初的时候设计实践过一个课题&#xff1a;SpringBootRedis实现不重复消费的队列&#xff0c;并用它开发了一个年夜饭下单和制作的服务。不知道大家还有没有印象。完成这个课题后&#xff0c;我兴致勃勃的把它运用到了项目里面&#xff0c;可谁曾想&#xff0c;运行不久后…...

ArchLinux挑战安装(ZFS、Wayland、KDE、xero)

目录 0. 前言&#xff1a; 1. 先期准备 1.1 引导ArchLinx光盘。 1.2 禁用 reflector 服务 1.3 防止网卡禁用 1.4 wifi设置 1.5 测试网络是否连接 1.6 更新系统时间 1.7 更换源 1.8 下载ZFS模块 1.9 加载ZFS模块 2. 磁盘处理 2.1 查看磁盘分区 2.2 清除与整个磁盘…...

纯css写一个动态圣诞老人

效果预览 在这篇文章中&#xff0c;我们将学习如何使用CSS来创建一个生动的圣诞老人动画。通过CSS的魔力&#xff0c;我们可以让圣诞老人在网页上摇摆&#xff0c;仿佛在向我们招手庆祝圣诞节和新年。 实现思路 实现这个效果的关键在于CSS的keyframes动画规则以及各种CSS属性…...

百度Apollo的PublicRoadPlanner一些移植Ros2-foxy的思路(持续更新)

如今的PublicRoadPlanner就是之前耳熟能详的EM planner 计划 —— ROS2与CARLA联合仿真 结构化场景: 规划算法:EM-planner 控制算法:MPC和PID 非结构化场景: 规划算法采用Hybrid A* (1)小车模型搭建(计划参考Github上Hybrid上的黑车,比较炫酷) (2)车辆里程计: 位…...

Linux内存管理(七十三):cgroup v2 简介

版本基于: Linux-6.6 约定: 芯片架构:ARM64内存架构:UMACONFIG_ARM64_VA_BITS:39CONFIG_ARM64_PAGE_SHIFT:12CONFIG_PGTABLE_LEVELS :31. cgroup 简介 术语: cgroup:control group 的缩写,永不大写(never capitalized); 单数形式的 cgroup 用于指定整个特性,也用…...

c++习题01-ljc的暑期兼职

目录 一&#xff0c;题目描述 二&#xff0c;思路 三&#xff0c;伪代码 四&#xff0c;流程图 五&#xff0c;代码 一&#xff0c;题目描述 二&#xff0c;思路 1&#xff0c;根据题目要求需要声明4个变量&#xff1a;a,b,c,d ;牛奶价格a&#xff0c;活动要求b&…...

有哪些方法可以恢复ios15不小心删除的照片?

ios15怎么恢复删除的照片&#xff1f;在手机相册里意外删除了重要的照片&#xff1f;别担心&#xff01;本文将为你介绍如何在iOS 15系统中恢复已删除的照片。无需专业知识&#xff0c;只需要按照以下步骤操作&#xff0c;你就能轻松找回宝贵的回忆。 一、从iCloud云端恢复删除…...

nacos漏洞汇总

1 nacos介绍 1.1 nacos是啥 Alibaba Nacos是阿里巴巴推出来的一个新开源项目&#xff0c;是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。致力于帮助发现、配置和管理微服务。Nacos提供了一组简单易用的特性集&#xff0c;可以快速实现动态服务发现、服…...

React Antd ProTable 如何设置类似于Excel的筛选框

React Antd ProTable 如何设置类似于Excel的筛选框 目标&#xff1a;在web页面的table表格中完成类似于EXCEL的Filter筛选功能。 示例图&#xff1a;点击标题列上方的漏斗状图标&#xff0c;即可对数据进行筛选。 ProTable 前景提要 ProTable API中有说明&#xff0c;是有…...

句法分析概述

第1关&#xff1a;句法分析概述 任务描述 本关任务&#xff1a;通过对句法分析基本概念的学习&#xff0c;完成相应的选择题。 相关知识 为了完成本关任务&#xff0c;你需要掌握&#xff1a; 句法分析的基础概念&#xff1b; 句法分析的数据集和评测方法。 句法分析简介…...

简单了解css的基本使用

CSS 一、基础认知 1、CSS引入方式 1.1、内嵌式&#xff08;CSS写在style标签中&#xff09; style标签虽然可以写在页面的任意位置&#xff0c;但是通常约定写在head标签中 2.2、外联式&#xff08;CSS写在一个单独的.css文件中&#xff09; 需要通过link标签在网页中引入…...

构建网络图 (JavaScript)

前序&#xff1a;在工作中难免有一些千奇百怪的需求&#xff0c;如果你遇到构建网络图&#xff0c;或者学习应对未来&#xff0c;请看这边文章&#xff0c;本文以代码为主。 网络图是数据可视化中实用而有效的工具&#xff0c;特别适用于说明复杂系统内的关系和连接。这些图表…...

洛谷U389682 最大公约数合并

这道题最后有一个性质没有想出来&#xff0c;感觉还是有一点遗憾。 性质一、贪心是不对的 8 11 11 16虽然第一次选择8和16合并是最优的&#xff0c;但是如果合并两次的话8 11 11是最优的。 性质二 、有1的情况就是前k1个&#xff0c;也就是说&#xff0c;很多情况下取前k1都…...

video_多个m3u文件合并成一个m3u文件

主要是用#EXT-X-DISCONTINUITY进行拼接,用简单的例子说明: 第一个文件: #EXTM3U #EXT-X-VERSION:3 #EXT-X-TARGETDURATION:69 #EXT-X-MEDIA-SEQUENCE:1001 #EXTINF:60.000000, xmt202406_11001.ts #EXTINF:60.000000, xmt202406_11002.ts #EXTINF:60.000000, xmt202406_11…...

x264 码率控制 MBtree 原理:i_propagate_cost计算过程

x264 码率控制 MBtree 原理 关于x264 码率控制中 MBtree 算法的原理具体可以参考:x264 码率控制MBtree原理。 i_propagate_cost介绍 该值在 frame.h 中 x264_frame_t结构体中声明。该值是一个 uint16_t型指针变量,在 MBtree 算法中用来存储每个宏块的传播代价。在*frame_ne…...

C语言基础笔记(全)

一、数据类型 数据的输入输出 1.数据类型 常量变量 1.1 数据类型 1.2 常量 程序运行中值不发生变化的量&#xff0c;常量又可分为整型、实型(也称浮点型)、字符型和字符串型 1.3 变量 变量代表内存中具有特定属性的存储单元&#xff0c;用来存放数据&#xff0c;即变量的值&a…...

通过注释语句,简化实体类的定义(省略get/set/toString的方法)

引用Java的lombok库&#xff0c;减少模板代码&#xff0c;如getters、setters、构造函数、toString、equals和hashCode方法等 import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor;Data NoArgsConstructor AllArgsConstructorData&#xf…...

春联生成模型安装包制作:一键部署exe工具开发

春联生成模型安装包制作&#xff1a;一键部署exe工具开发 1. 引言 每年春节前&#xff0c;很多朋友都想自己动手写春联&#xff0c;但要么字写得不够好看&#xff0c;要么想不出有新意的词句。现在有了AI春联生成模型&#xff0c;这个问题就简单多了。不过&#xff0c;对于不…...

OpenClaw定时任务管理:千问3.5-35B-A3B-FP8实现早间资讯自动推送

OpenClaw定时任务管理&#xff1a;千问3.5-35B-A3B-FP8实现早间资讯自动推送 1. 为什么需要自动化资讯推送 每天早上打开电脑第一件事&#xff0c;就是查看行业动态和技术新闻。但手动检索各大平台、整理关键信息要耗费20多分钟&#xff0c;经常打乱晨间工作节奏。直到发现Op…...

Nooploop TOFSense-M 点阵激光测距模块:从开箱到ROS集成的全栈开发指南

1. 开箱与硬件初体验 刚拿到Nooploop TOFSense-M时&#xff0c;这个火柴盒大小的模块确实让我有些意外——毕竟能实现0.1-12米测距能力的设备&#xff0c;想象中应该更笨重些。包装盒里除了主体模块&#xff0c;还贴心地配备了杜邦线和转接板&#xff0c;这对嵌入式开发者来说就…...

蓝桥杯二分算法通关指南:模板+真题+避坑,O(logn)秒杀大数据题

蓝桥杯二分算法通关指南&#xff1a;模板真题避坑&#xff0c;O(logn)秒杀大数据题 文章目录蓝桥杯二分算法通关指南&#xff1a;模板真题避坑&#xff0c;O(logn)秒杀大数据题一、蓝桥杯二分核心题型&#xff08;精简必背&#xff09;1. 二分查找&#xff08;基础必考&#xf…...

AI绘画联动:OpenClaw调用Qwen3-32B生成Stable Diffusion提示词

AI绘画联动&#xff1a;OpenClaw调用Qwen3-32B生成Stable Diffusion提示词 1. 当AI助手遇上AI绘画&#xff1a;我的自动化创作实验 去年第一次接触Stable Diffusion时&#xff0c;我就被它的创作潜力震撼了。但很快发现一个问题&#xff1a;要得到理想的画面&#xff0c;往往…...

在FreeRTOS上为Zynq CAN驱动添加任务间通信:一个实用的数据收发框架搭建

在FreeRTOS上为Zynq CAN驱动构建高效任务间通信框架 当我们在Zynq平台上开发基于FreeRTOS的CAN总线应用时&#xff0c;如何安全高效地在中断服务程序(ISR)与任务之间传递数据&#xff0c;是构建稳定系统的关键挑战。本文将深入探讨一个经过实战检验的解决方案——通过消息队列和…...

形式验证实战:5个降低状态空间复杂度的黑科技(附内存控制器案例)

形式验证实战&#xff1a;5个降低状态空间复杂度的黑科技&#xff08;附内存控制器案例&#xff09; 在芯片设计领域&#xff0c;形式验证&#xff08;Formal Verification, FV&#xff09;正逐渐成为确保设计正确性的重要手段。然而&#xff0c;随着设计复杂度的提升&#xff…...

【逆向实战】Unity3D+il2cpp手游反编译与逻辑修改全流程解析【IDA Pro+il2CppDumper】

1. 从零开始理解Unity3Dil2cpp逆向 第一次接触手游逆向的朋友可能会被"il2cpp"这个术语吓到。其实简单来说&#xff0c;il2cpp就是Unity3D用来提升游戏性能的编译方案——它把C#代码先转成C&#xff0c;再编译成原生机器码。这种架构虽然让游戏跑得更快&#xff0c;但…...

告别Keil C51安装烦恼:STC8单片机开发环境保姆级配置指南(含芯片包添加)

从零搭建STC8开发环境&#xff1a;Keil C51避坑指南与实战技巧 第一次接触STC8单片机时&#xff0c;最让人头疼的莫过于开发环境的搭建。网上教程要么过于简略&#xff0c;要么步骤不全&#xff0c;总会在某个环节卡住——可能是Keil安装报错&#xff0c;可能是芯片包添加失败&…...

OpenClaw任务编排:Qwen3-4B-Thinking-2507-GPT-5-Codex-Distill-GGUF处理依赖型工作流

OpenClaw任务编排&#xff1a;Qwen3-4B-Thinking-2507-GPT-5-Codex-Distill-GGUF处理依赖型工作流 1. 为什么需要任务编排 去年夏天&#xff0c;我接手了一个数据分析项目&#xff0c;需要定期从十几个网站抓取数据&#xff0c;清洗后生成分析报告&#xff0c;再邮件发送给团…...