关于我让chatGPT帮我用python写GUI这件事...

个人需求

用python编写一个GUI程序,在电脑上运行,功能是输入一个apk文件,修改版本号之后输出给我。
就这么简单,我还没展开,展开就是:
选择apk文件 – 解析apk – 修改apktool.yml文件中的versionCode和versionName – 构建新的apk – 签名apk
因为个人并不熟悉python,所以这个需求我委托了ChatGPT兄弟帮我搞搞
请添加图片描述

实现功能

下面是一些对话:
在这里插入图片描述这是完整代码,大家也可以试试:

python
import tkinter as tk
from tkinter import filedialog
import os
import shutil
import xml.etree.ElementTree as ET# 导入 APK 文件
def import_apk():global apk_pathapk_path = filedialog.askopenfilename()apk_label.config(text=apk_path)# 修改 APK 文件版本号
def modify_apk():# 获取输入和输出文件路径input_path = apk_pathoutput_path = os.path.splitext(input_path)[0] + '_modified.apk'# 使用 apktool 工具反编译 APK 文件os.system('apktool d -f "{}"'.format(input_path))# 修改版本号manifest_path = os.path.join(os.path.splitext(input_path)[0], 'AndroidManifest.xml')tree = ET.parse(manifest_path)root = tree.getroot()version_code = root.get('versionCode')version_name = root.get('versionName')version_code = int(version_code) + 1  # 将版本号 +1version_name = version_name + '.1'  # 在版本名称后面添加 .1root.set('versionCode', str(version_code))root.set('versionName', version_name)tree.write(manifest_path)# 使用 apktool 工具重新打包 APK 文件os.system('apktool b -f "{0}" -o "{1}"'.format(os.path.splitext(input_path)[0], output_path))# 删除反编译文件夹shutil.rmtree(os.path.splitext(input_path)[0])# 更新输出文件标签output_label.config(text=output_path)# 创建主窗口
root = tk.Tk()
root.title('APK 版本号修改工具')# 创建 APK 文件选择按钮和标签
apk_button = tk.Button(root, text='选择 APK 文件', command=import_apk)
apk_button.pack(pady=10)
apk_label = tk.Label(root, text='请选择 APK 文件')
apk_label.pack()# 创建修改按钮和标签
modify_button = tk.Button(root, text='修改 APK 文件版本号', command=modify_apk)
modify_button.pack(pady=10)
output_label = tk.Label(root, text='输出文件路径')
output_label.pack()# 进入主循环
root.mainloop()

复制粘贴,启动!
在这里插入图片描述
还真的是有模有样,选择apk文件后点击“修改APK文件版本号”按钮,程序会去解析apk文件并且修改AndroidManifest.xml的版本号,使其版本号自动+1。

不出意外,就要出意外了,首先是解析apk后输出路径output_path的问题,是在当前python文件目录下,也就是说在修改AndroidManifest的时候,如果apk文件并不跟python文件在同一路径下,就会报错:

FileNotFoundError: [Errno 2] No such file or directory: 'F:/apk\\AndroidManifest.xml'

将路径改对后发现,apk解析后版本号并不能再AndroidManifest上查看,只有Android旧版本可以做到,现在新版本的Android apk兼容高版本的安卓代码(具体可以参考:Manifest中找不到versionCode? ),这个版本信息就不能再AndroidManifest.xml中获取了,更别说修改了。

搞反编译有经验的我马上就知道需要修改的文件是apktool.yml,马上嘟嘟嘟写好了。

上面的案例可以看出来,chatGPT帮我搭了个样板,编程的逻辑和思路都没错,只是可能有一些需要修改的,总而言之,目的达到了,这对之前对于python编程经验几乎为0的我来说很不错了,框架其实就已经写好了,后面只是在这个框架上修改东西,新增功能就好了。

另外,我还让他(chatGPT)帮我调节了样式,例如宽高尺寸,显示居中等…
在这里插入图片描述
有个很有意思的地方,我把提问里的“居中”写成“举重”了哈哈哈哈,然后这是他的回答:

在这里插入图片描述
在这里插入图片描述
代码在这,要看也可以看下:

python
import tkinter as tk# 创建主窗口
root = tk.Tk()
root.title('举重计算器')# 设置 GUI 界面大小为屏幕宽度和高度的三分之一
screen_width = root.winfo_screenwidth()
screen_height = root.winfo_screenheight()
gui_width = screen_width // 3
gui_height = screen_height // 3
root.geometry('{}x{}'.format(gui_width, gui_height))# 定义默认的举重数值
default_weight = 50# 创建体重输入框和标签
weight_label = tk.Label(root, text='体重(kg):')
weight_label.pack()
weight_var = tk.StringVar(value=default_weight)
weight_entry = tk.Entry(root, textvariable=weight_var)
weight_entry.pack()# 创建重量输入框和标签
lift_label = tk.Label(root, text='举重(kg):')
lift_label.pack()
lift_var = tk.StringVar(value=default_weight)
lift_entry = tk.Entry(root, textvariable=lift_var)
lift_entry.pack()# 创建计算按钮和标签
calculate_button = tk.Button(root, text='计算')
calculate_button.pack(pady=10)
result_label = tk.Label(root, text='结果:')
result_label.pack()# 进入主循环
root.mainloop()

还蛮认真的咧~

还有一个事情也比较有趣,我在让他帮我设计一个Loading窗口时,出现了一个报错,我把报错贴出来问他,哈哈居然先跟我道歉了:
在这里插入图片描述
有些提供的修改方案有时候还是会有新的报错,持续抛给他让他解决,大概率是可以完成你的需求的。

使用总结

在使用ChatGPT编程过程中,有好的体验也有比较不好的体验,例如有个问题但是得不到好的回答,有些需求可能没那么容易实现,或者难以描述清楚具体的需求等…但!总得来说好的体验更多,ChatGPT给我的正反馈是很足的,让我这个刚接触py语言的人来说,节省了很多的学习成本。

效果展示

最后 这是我最终靠ChatGPT实现的一个python GUI程序:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/6340.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

iOS多语言解决方案全面指南

本文以及相关工具和代码旨在为已上线的iOS项目提供一种快速支持多语言的解决方案。由于文案显示是通过hook实现的,因此对App的性能有一定影响;除了特殊场景的文案显示需要手动支持外,其他任务均已实现自动化。 本文中的部分脚本代码基于 Chat…

重磅!OpenAI 官宣首个 ChatGPT iOS 应用 !

作者 | 冬梅、核子可乐 OpenAI 官宣首个 ChatGPT iOS 应用 ChatGPT 正快步登陆移动平台。日前,OpenAI 宣布推出官方 iOS 应用,允许用户随时随地访问其高人气 AI 聊天机器人,此举也打破了近几个月内苹果 App Store 上充斥似是而非的山寨服务…

从四个角度全面认识 ChatGPT

传统语言模型是什么样的?ChatGPT 涌现出了哪些新能力?这些能力都是怎么做到的?在 ChatGPT 大模型时代,我们应该怎么做? 当下最引人注目的语言模型 ChatGPT 如火如荼,主要还是因为其能力远远超越了传统模型。…

ChatGPT 实战:快速了解一个新领域

前段时间在社区里看到有人在分享:如何用 ChatGPT 麦肯锡方法论洞察一个行业,感觉这个方法在陌生行业的研究上很有帮助,同时我也一直好奇,投资经理在一两周的时间里如何快速了解一个新领域并做出投资决策的。先解决你的第一个疑问…

一文了解什么是ChatGPT

ChatGPT 是一种自然语言人工智能聊天机器人。在最基本的层面上,这意味着你可以问它任何问题,它会生成一个答案。 一、如何使用聊天 GPT 首先,转到chat.openai.com。如果这是您的第一次,您需要在开始之前使用 OpenAI 设置一个免费…

ChatGPT自己认为可以改变这些行业

ChatGPT是一种非常强大的自然语言处理工具,可以在多个行业中发挥作用。下面是几个可以改变的行业: 一、智能客服行业 ChatGPT可以被用于智能客服行业,因为它可以与客户进行交互,提供响应和解决问题的方法,而不需要等…

ChatGPT在五大行业应用落地及带来的影响

ChatGPT一经推出就获得了巨大的关注,两个月时间就达到月活1亿的惊人成绩。关于ChatGPT的一些基础原理和优势这里我们就不做过多介绍,因为现在介绍ChatGPT的文章数不胜数,这里不做赘述。 这篇文章将深入探讨一下ChatGPT目前影响最大的五个行业…

码农饭碗不保——ChatGPT正在取代Coder

最近被OpenAI的ChatGPT刷屏了。我猜你已经读了很多关于ChatGPT的文章,不需要再介绍了。假如碰巧您还不太了解ChatGPT是什么,可以先看一下这篇文章,然后再回来继续。 与ChatGPT对话很有趣,甚至很有启发性。我们的内容创作部门已经将…

推荐一款 ChatGPT 跨平台客户端,已开源

今天推荐的这个项目是「ChatGPT-Desktop」,基于 tauri vue3 开发的 ChatGPT 跨平台客户端,快捷键快速唤醒窗口,问答快人一步。 ChatGPT-Desktop 的优势 使用 tauri 构建项目,使项目包更加小巧精简,资源占用更少&#…

android两行代码检测手机号是否注册whatsapp

通过安卓scheme 调起whatsapp 实现此手机号有没有在whatsapp注册的检测 需要在安卓中写入如下代码, Uri uri Uri.parse("whatsapp://send?phone8618800008888"); startActivity(new Intent(Intent.ACTION_VIEW,uri)); 检测手机号需要带上国家区号&a…

天猫精灵智能设备对接(3)

这一篇文章主要讲解服务器端的设置,这里我使用的是腾讯云,当时学生价1块钱一个月买的,现在的学生价涨到了10块,为我当时的机智点赞。为什么一定要使用服务器呢,这个是因为天猫精灵协议的对接是云服务器与云服务器的对接…

设备接入天猫精灵教程(一)

现在网上接入天猫精灵的教程基本都是云对云接入,需要搭建服务器,写硬件程序,费时又复杂。这次结合之前的阿里云教程做一个通过阿里云物联网平台接入天猫精灵的教程,免去了服务器开发,大大的降低了难度。 整体业务流程如…

安信可ESP8266模块实现对接天猫精灵IOT平台控制单路插座的教程

文章目录 一、材料准备二、软件配置 一、材料准备 天猫精灵一个,ESP8266模块一个(为了方便接线我们直接使用了Nodemcu开发板),插座一个(方便查看现象),杜邦线若干,接线方式如下 No…

【2019年中总结】五种途径对接天猫精灵音响控制您的智能设备,打破传统产业,让语音AI控制无处不在!

文章目录 一、写在前面;二、天猫精灵开放平台;AliGenie开发者平台 三、途径1:早期阿里智能平台 ----- 阿里小智。四、途径2:云云对接。五、途径3:蓝牙直连(sig mesh)。六、途径4:WiF…

esp8266对接天猫精灵(11)终端编程

一、编写lua脚本获取控制信息(8266) 前边也说过,这个脚本要实现的步骤可以分三步,第一步是联网,第二步是使用http get到数据,然后控制要控制的设备。我们的lua脚本分为两个,一个是init.lua,另外…

esp8266对接天猫精灵(3)原理

这一篇文章主要讲解服务器端的设置,这里我使用的是腾讯云,当时学生价1块钱一个月买的,现在的学生价涨到了10块,为我当时的机智点赞。为什么一定要使用服务器呢,这个是因为天猫精灵协议的对接是云服务器与云服务器的对接…

【esp8266】③esp8266对接天猫精灵实现语音控制

源码github地址:https://github.com/linzhongpaihuai/smartplug ①烧录方法:https://blog.csdn.net/u010177891/article/details/90348729 ②esp8266实现http server服务详解:https://blog.csdn.net/u010177891/article/details/100024710…

AI测试|天猫精灵智能音箱测试策略与方法

一、业务介绍 2014年11月,亚马逊推出了一款全新概念的智能音箱:Echo,这款产品最大的亮点是将智能语音交互技术植入到传统音箱中,从而赋予了音箱人工智能的属性。这个被称为“Alexa”的语音助手可以像你的朋友一样与你交流&#x…

TB-02_Kit 开发板连接天猫精灵

TB-02_Kit 开发板简介 Tb-02_Kit是安信可设计的一款蓝牙开发板,支持二次开发,串口烧录。除了基础蓝牙功能外,还支持BLE Mesh,可连接天猫精灵。 安信可串口烧录工具 TBXX_Flash_Tool 是安信可自主开发的针对TB系列模块的串口烧录…

ESP8266连接天猫精灵(一)

背景 接触天猫精灵后,就想作一些小东西能接入天猫精灵。查看官网的文档后,选择了ESP系列,官方在文档中也比较推荐。读技术文档是个很难受的事情,容易犯困,最好有可以操作的设备。准备如下: 名称 规格 备注…