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程序对比,纯c的ui编程也不是太复杂。 再说一次,要想学好编程必须要用上这个chatgpt工具。 在 Linux 环境下使用纯 C 语言编写一个按钮,当按钮按下时,在一个新窗口中显示本机主目…...
SherlockChain:基于高级AI实现的智能合约安全分析框架
关于SherlockChain SherlockChain是一款功能强大的智能合约安全分析框架,该工具整合了Slither工具(一款针对智能合约的安全工具)的功能,并引入了高级人工智能模型,旨在辅助广大研究人员针对Solidity、Vyper和Plutus智…...
MySQL中Explain执行计划各参数的含义
EXPLAIN 语句输出的各个列的作用先大致罗列一下: 列名 描述 id 在一个大的查询语句中每个SELECT关键字都对应一个唯一的id select_type SELECT关键字对应的那个查询的类型 table 表名 partitions 匹配的分区信息 type 针对单表的访问方法 possible_keys…...
Redis队列自研组件
背景 年初的时候设计实践过一个课题:SpringBootRedis实现不重复消费的队列,并用它开发了一个年夜饭下单和制作的服务。不知道大家还有没有印象。完成这个课题后,我兴致勃勃的把它运用到了项目里面,可谁曾想,运行不久后…...
ArchLinux挑战安装(ZFS、Wayland、KDE、xero)
目录 0. 前言: 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写一个动态圣诞老人
效果预览 在这篇文章中,我们将学习如何使用CSS来创建一个生动的圣诞老人动画。通过CSS的魔力,我们可以让圣诞老人在网页上摇摆,仿佛在向我们招手庆祝圣诞节和新年。 实现思路 实现这个效果的关键在于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的暑期兼职
目录 一,题目描述 二,思路 三,伪代码 四,流程图 五,代码 一,题目描述 二,思路 1,根据题目要求需要声明4个变量:a,b,c,d ;牛奶价格a,活动要求b&…...
有哪些方法可以恢复ios15不小心删除的照片?
ios15怎么恢复删除的照片?在手机相册里意外删除了重要的照片?别担心!本文将为你介绍如何在iOS 15系统中恢复已删除的照片。无需专业知识,只需要按照以下步骤操作,你就能轻松找回宝贵的回忆。 一、从iCloud云端恢复删除…...
nacos漏洞汇总
1 nacos介绍 1.1 nacos是啥 Alibaba Nacos是阿里巴巴推出来的一个新开源项目,是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。致力于帮助发现、配置和管理微服务。Nacos提供了一组简单易用的特性集,可以快速实现动态服务发现、服…...
React Antd ProTable 如何设置类似于Excel的筛选框
React Antd ProTable 如何设置类似于Excel的筛选框 目标:在web页面的table表格中完成类似于EXCEL的Filter筛选功能。 示例图:点击标题列上方的漏斗状图标,即可对数据进行筛选。 ProTable 前景提要 ProTable API中有说明,是有…...
句法分析概述
第1关:句法分析概述 任务描述 本关任务:通过对句法分析基本概念的学习,完成相应的选择题。 相关知识 为了完成本关任务,你需要掌握: 句法分析的基础概念; 句法分析的数据集和评测方法。 句法分析简介…...
简单了解css的基本使用
CSS 一、基础认知 1、CSS引入方式 1.1、内嵌式(CSS写在style标签中) style标签虽然可以写在页面的任意位置,但是通常约定写在head标签中 2.2、外联式(CSS写在一个单独的.css文件中) 需要通过link标签在网页中引入…...
构建网络图 (JavaScript)
前序:在工作中难免有一些千奇百怪的需求,如果你遇到构建网络图,或者学习应对未来,请看这边文章,本文以代码为主。 网络图是数据可视化中实用而有效的工具,特别适用于说明复杂系统内的关系和连接。这些图表…...
洛谷U389682 最大公约数合并
这道题最后有一个性质没有想出来,感觉还是有一点遗憾。 性质一、贪心是不对的 8 11 11 16虽然第一次选择8和16合并是最优的,但是如果合并两次的话8 11 11是最优的。 性质二 、有1的情况就是前k1个,也就是说,很多情况下取前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 常量 程序运行中值不发生变化的量,常量又可分为整型、实型(也称浮点型)、字符型和字符串型 1.3 变量 变量代表内存中具有特定属性的存储单元,用来存放数据,即变量的值&a…...
通过注释语句,简化实体类的定义(省略get/set/toString的方法)
引用Java的lombok库,减少模板代码,如getters、setters、构造函数、toString、equals和hashCode方法等 import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor;Data NoArgsConstructor AllArgsConstructorData…...
springboot框架使用Netty依赖中解码器的作用及实现详解
在项目开发 有需求 需要跟硬件通信 也没有mqtt 作为桥接 也不能http 请求 api 所以也不能 json字符串这么爽传输 所以要用tcp 请求 进行数据交互 数据还是16进制的 写法 有帧头 什么的 对于这种物联网的这种对接 我的理解就是 我们做的工作就像翻译 把这些看不懂的 字节流 变成…...
Python爬虫实战之爬取京东商品数据
在数字化时代,数据如同黄金般珍贵,而电商数据,尤其是像京东这样的大型电商平台上的信息,更是商家、市场分析师和数据科学家眼中的瑰宝。本文将带您走进Python爬虫的世界,探索如何高效、合法地采集京东商品数据…...
浅析Resource Quota中limits计算机制
前言 在生产环境中,通常需要通过配置资源配额(Resource Quota)来限制一个命名空间(namespace)能使用的资源量。在资源紧张的情况下,常常需要调整工作负载(workload)的请求值…...
《数据结构与算法基础 by王卓老师》学习笔记——1.4算法与算法分析
一、算法 1.1算法的研究内容 1.2算法的定义 1.3算法的描述 以下是算法的自然语言描述 以下是算法的传统流程图表示 以下是NS流程图表示 1.4算法和程序的区别与联系 1.5算法的五个特性 1.6算法设计的要求 Robustness也称为鲁棒性 二、算法分析 2.1算法时间效率的度量 2.1.1事…...
运维团队如何加强安全设备监控与日志管理
随着信息技术的飞速发展,网络安全问题日益凸显,安全设备的监控和日志管理成为了运维团队不可或缺的工作内容。本文将结合运维行业的实际需求,探讨如何加强安全设备监控与日志管理,以提升系统的安全性和稳定性。 一、安全设备监控…...
仓库管理系统13--物资设置
1、添加窗体 2、设计UI界面 注意这个下拉框的绑定,你看到的选项是由displaymember决定,当你选择了哪个选项时,后台绑定这个选项的ID <UserControl x:Class"West.StoreMgr.View.GoodsView"xmlns"http://schemas.microsoft…...
机器人控制系列教程之URDF文件语法介绍
前两期推文:机器人控制系列教程之动力学建模(1)、机器人控制系列教程之动力学建模(2),我们主要从数学的角度介绍了机器人的动力学建模的方式,随着机器人技术的不断发展,机器人建模成为了机器人系统设计中的一项关键任务。URDF&…...
Arathi Basin (AB) PVP15
Arathi Basin (AB) PVP15 阿拉希盆地,PVP,15人战场...
Ubuntu/Linux SSH 端口转发
文章目录 Ubuntu/Linux SSH 端口转发概述本地端口转发场景一场景二 参考资料 Ubuntu/Linux SSH 端口转发 概述 SSH, Secure Shell 是一种在网络上用于安全远程登录到另一台机器的工具。除了远程登录以外,ssh 的端口转发是它的另一项强大功能。通过 ssh 端口转发功…...
flask的locked_cached_property
下面是一个关于 locked_cached_property 装饰器的详细教程。这个装饰器将一个方法转换为一个惰性属性,在第一次访问时计算其值,并在随后的访问中缓存该值。同时,它在多线程环境中是线程安全的。 教程:理解和使用 locked_cached_p…...
wordpress如何上传图片/石家庄最新疫情
文字加工常用于模具标记、零件装饰、简单文字雕刻等,如图6.1所示。文字加工一般在零件精加工之后进行。由于加工的刀具直径很小,很容易折断。因此文字加工切削量少,需要在转速高达10000~30000r/min的高速机或雕刻机上才能以较短的时间完成。文…...
wordpress更新报错/日本疫情最新数据
电脑文件定时备份用什么方法好?现在是信息化的时代,公司员工处理工作时都需要使用电脑,而且很多人并没有文件备份的意识,这对数据安全是一个很大的隐患,因为电脑中的数据相当于企业的重要资产数据。 如果公司电脑里的重…...
十大购物网站排名/今日热榜官网
SpringBoot项目中,使用Kafka可以实现数据异步处理 目录下载安装KafkaSpringBoot引入Kafka引入依赖pom.xml配置 application.yml消费者生产者消息发送和接收参考下载安装Kafka # 从清华镜像下载 wget https://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.8.2/kafk…...
html5手机网站制作教程/九江seo公司
通常来说我们在花括号中定义的名称其作用域就在花括号中,但是C98的枚举类型的声明却不遵从这个规则。 enum Color {black,white,red}; auto white false; //编译出错white已经声明了 事实上,上面这些枚举名称都暴露到外层的作用域中了,官…...
本地备份wordpress/刷关键词排名seo软件软件
MYSQL数据库-库表操作零、前言一、库的操作1、创建数据库2、字符集和校验规则3、查看数据库4、修改数据库5、数据库删除6、备份和恢复7、查看连接情况二、表的操作1、创建表2、查看表3、修改表4、删除表4、删除表零、前言 本章主要学习MYSQL数据库中库操作和表操作 一、库的操作…...
毕设做网站具体步骤/网络培训平台有哪些
Linux文件管理一、文件系统及Shell的基本概念1.文件系统的含义文件系统是用来管理和组织保存在磁盘驱动器上数据的系统软件2.Linux的文件系统Linux系统采用虚拟文件系统技术(VFS)、结构采用倒立树型、VFS使Linux支持以下文件系统&…...