Login
宁夏3d云Info
首页 > 专业分类 > 软件开发

翻身神器!3分钟学会用Python做一个高颜值GUI程序

小神龙 2025-02-22 12:36:44 人看过

用Python写了一个实用小工具,但只能在黑乎乎的命令行里运行?今天我要教你一招:只需加两行代码,立刻让你的程序变身高颜值GUI应用!

大家好,我是逍遥。最近收到不少读者反馈,说写了一些实用的Python脚本,但是让其他人用起来不太方便。确实,不是所有人都会用命令行,如果能有个漂亮的图形界面就好了。

那么今天我就给大家介绍一个超级简单的GUI库 - Gooey。它的特点是:只需要加两行代码,就能让你的命令行程序秒变界面应用。

一、Gooey是个什么宝贝?

Gooey是一个能让Python命令行程序"化茧成蝶"的神奇工具。它最大的特点就是使用门槛极低,基本上不需要学习任何GUI编程知识。

来看看它能干啥:

  1. 自动生成漂亮的程序界面

  2. 支持文件选择、下拉菜单等各种控件

  3. 可以自定义界面主题和语言

  4. 还能打包成独立的exe程序分享给别人

二、开始动手

首先安装Gooey:

pip install Gooey

来写个最简单的例子感受一下:

from gooey import Gooey, GooeyParser

@Gooey(language='chinese')
def main():
    parser = GooeyParser(description="我的第一个GUI程序")
    parser.add_argument("name", help="请输入你的名字")
    args = parser.parse_args()
    print(f"你好, {args.name}!")

if __name__ == '__main__':
    main()

就这么简单!运行一下,你会看到一个精美的界面弹出来。

三、实战案例:照片批量重命名工具

光说不练假把式,来做个实用的小工具 - 批量给照片重命名:

import os
from datetime import datetime
from gooey import Gooey, GooeyParser

@Gooey(
    program_name="照片批量重命名工具",
    language='chinese',
    default_size=(600, 500)
)
def main():
    parser = GooeyParser(description="给照片按拍摄时间重命名")
    
    parser.add_argument(
        "folder_path",
        help="选择照片所在文件夹",
        widget="DirChooser"
    )
    
    parser.add_argument(
        "--prefix",
        default="IMG_",
        help="文件名前缀"
    )
    
    args = parser.parse_args()
    
    # 重命名照片
    renamed = 0
    for filename in os.listdir(args.folder_path):
        if filename.lower().endswith(('.png', '.jpg', '.jpeg')):
            file_path = os.path.join(args.folder_path, filename)
            # 获取照片修改时间
            mtime = datetime.fromtimestamp(os.path.getmtime(file_path))
            # 新文件名
            new_name = f"{args.prefix}{mtime.strftime('%Y%m%d_%H%M%S')}.jpg"
            new_path = os.path.join(args.folder_path, new_name)
            
            os.rename(file_path, new_path)
            renamed += 1
            print(f"已重命名: {filename} -> {new_name}")
    
    print(f"\n完成!共重命名了 {renamed} 张照片")

if __name__ == '__main__':
    main()

这个小工具可以:

  1. 通过可视化界面选择照片文件夹

  2. 自定义文件名前缀

  3. 自动按照照片的修改时间重命名

  4. 支持常见图片格式(.jpg/.png等)


四、进阶用法

Gooey还有很多强大的功能:

1. 添加菜单分组

@Gooey(
    program_name="图片处理工具",
    navigation="TABBED"  # 使用选项卡式布局
)
def main():
    parser = GooeyParser()
    
    rename_group = parser.add_argument_group(
        "重命名",
        "批量重命名照片"
    )
    rename_group.add_argument("folder_path", widget="DirChooser")
    
    compress_group = parser.add_argument_group(
        "压缩",
        "压缩图片文件"
    )
    compress_group.add_argument("quality", widget="Slider", gooey_options={
        'min': 1, 'max': 100
    })

2. 自定义界面主题

@Gooey(
    program_name="我的应用",
    body_bg_color="#FFFFFF",
    header_bg_color="#6A8759",
    footer_bg_color="#6A8759"
)

3. 添加进度条

from gooey import Gooey, GooeyParser
import time

@Gooey(progress_regex=r"^progress: (\d+)$")
def main():
    parser = GooeyParser()
    args = parser.parse_args()
    
    for i in range(100):
        print(f"progress: {i+1}")  # Gooey会捕获这个输出并更新进度条
        time.sleep(0.1)

五、打包分发

写好程序后,我们可以用PyInstaller把它打包成独立的exe文件:

pip install pyinstaller
pyinstaller --windowed --name MyApp main.py

打包完成后,在dist文件夹里就能找到可以直接运行的exe文件了。

Gooey是个非常友好的GUI库,尤其适合:

  • Python初学者入门GUI编程

  • 快速给命令行工具添加界面

  • 制作小工具分享给普通用户

建议大家把玩一下,相信很快就能做出自己的第一个GUI程序!

转发、收藏、在看,是对作者最大的鼓励!👏

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章

{"errcode":40164,"errmsg":"invalid ip 101.43.141.73 ipv6 ::ffff:101.43.141.73, not in whitelist rid: 6ac41c09-536a2d21-483cbbfd"}
{"errcode":40164,"errmsg":"invalid ip 101.43.141.73 ipv6 ::ffff:101.43.141.73, not in whitelist rid: 6ac41c0a-6a04a8b7-71762c14"}