成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Gooey,一個神奇的 Python 庫

開發 開源
Gooey基于wxPython構建的,該庫的主要目標是為 Python 的 argparse 命令行程序提供簡單的 GUI 界面。它特別適合那些需要用戶輸入多個參數,但又不想編寫復雜 GUI 代碼的開發者。

Gooey是一個開源的 Python 庫,可將命令行程序一鍵轉換為用戶友好的圖形界面(GUI)。

Gooey基于wxPython構建的,該庫的主要目標是為 Python 的 argparse 命令行程序提供簡單的 GUI 界面。它特別適合那些需要用戶輸入多個參數,但又不想編寫復雜 GUI 代碼的開發者。

使用Gooey,你可以通過很少的代碼行,將命令行程序轉換為具有圖形界面的應用程序。

  • 官網: https://github.com/chriskiehl/Gooey
  • 示例: https://github.com/chriskiehl/GooeyExamples

安裝

安裝 Gooey 非常簡單,可以通過 pip 進行安裝:

pip install Gooey
# 或包含可選功能
pip install Gooey[images]  # 支持圖片顯示

核心特性

  • 簡單易用:只需添加一個裝飾器,即可將命令行程序轉換為 GUI。
  • 豐富的控件:支持多種控件,如文件選擇器、目錄選擇器、下拉菜單等。
  • 自定義界面:允許自定義程序的名稱、描述、圖標、默認尺寸等。
  • 國際化支持:支持多國語言。
  • 驗證功能:支持對輸入進行驗證。
  • 進度條:支持在長時間運行時顯示進度條。

簡單示例

from gooey import Gooey, GooeyParser

@Gooey(program_name="文件處理器", language="chinese", default_size=(600, 400))
def main():
    parser = GooeyParser(description="處理CSV文件")
    parser.add_argument("input_file", widget="FileChooser", help="選擇輸入文件")
    parser.add_argument("output_dir", widget="DirChooser", help="選擇輸出目錄")
    parser.add_argument("--delimiter", default=",", help="列分隔符")
    parser.add_argument("--verbose", action="store_true", help="顯示詳細日志")
    
    args = parser.parse_args()
    print(f"處理 {args.input_file} -> {args.output_dir}")

if __name__ == "__main__":
    main()

組件

Gooey 提供了豐富的 GUI 組件,通過 widget 參數指定。

這些組件與 argparse 參數無縫集成:

數據類型

推薦組件

文件路徑

FileChooser

目錄路徑

DirChooser

多選文件

MultiFileChooser

日期選擇

DateChooser

是/否開關

CheckBox

有限選項(<=5)

RadioGroup

有限選項(>5)

Dropdown

大型選項列表(50+)

FilterableDropdown

數值范圍

Slider

長文本

Textarea

顏色選擇

ColourChooser

各組件的構造GUI示例:

from gooey import Gooey, GooeyParser
import datetime

@Gooey(
    program_name="文件處理工具",
    program_descriptinotallow="多功能文件處理工具集",
    default_size=(900, 700),
    navigatinotallow="TABBED",
    tabbed_groups=True,
    header_bg_color="#2C3E50",
    body_bg_color="#ECF0F1",
    language='chinese'
)
def main():
    parser = GooeyParser(descriptinotallow="文件處理選項")
    
    # 文件選擇組
    file_group = parser.add_argument_group("文件選擇")
    file_group.add_argument(
        "input_file",
        widget="FileChooser",
        help="選擇輸入文件",
        gooey_optinotallow={
            'wildcard': "所有文件 (*.*)|*.*|文本文件 (*.txt)|*.txt",
            'default_path': "D:\\"
        }
    )
    file_group.add_argument(
        "output_dir",
        widget="DirChooser",
        help="選擇輸出目錄"
    )
    
    # 文本處理組
    text_group = parser.add_argument_group("文本處理")
    text_group.add_argument(
        "--text_content",
        widget="Textarea",
        help="輸入要處理的文本內容",
        gooey_optinotallow={
            'height': 100
        }
    )
    text_group.add_argument(
        "--encoding",
        choices=['utf-8', 'gbk', 'ascii'],
        default='utf-8',
        help="選擇文件編碼"
    )
    
    # 日期時間組
    date_group = parser.add_argument_group("時間設置")
    date_group.add_argument(
        "--start_date",
        widget="DateChooser",
        help="選擇開始日期"
    )
    date_group.add_argument(
        "--process_time",
        widget="TimeChooser",
        help="選擇處理時間"
    )
    
    # 數值設置組
    number_group = parser.add_argument_group("數值設置")
    number_group.add_argument(
        "--quantity",
        widget="IntegerField",
        help="處理數量",
        gooey_optinotallow={
            'min': 1,
            'max': 100
        }
    )
    number_group.add_argument(
        "--ratio",
        widget="Slider",
        help="處理比例",
        default=50,
        gooey_optinotallow={
            'min': 0,
            'max': 100
        }
    )
    
    # 選項組
    options_group = parser.add_argument_group("處理選項")
    options_group.add_argument(
        "--process_type",
        choices=['快速處理', '標準處理', '精細處理'],
        default='標準處理',
        help="選擇處理方式"
    )
    options_group.add_argument(
        "--backup",
        actinotallow="store_true",
        help="創建備份"
    )
    
    # 高級選項組
    advanced_group = parser.add_argument_group("高級選項")
    advanced_group.add_argument(
        "--password",
        widget="PasswordField",
        help="輸入處理密碼"
    )
    advanced_group.add_argument(
        "--custom_command",
        widget="Textarea",
        help="自定義命令",
        gooey_optinotallow={
            'height': 50
        }
    )
    
    args = parser.parse_args()
    
    # 顯示處理結果
    print("\n===== 處理配置 =====")
    print(f"輸入文件: {args.input_file}")
    print(f"輸出目錄: {args.output_dir}")
    print(f"文本內容長度: {len(args.text_content) if args.text_content else 0}")
    print(f"編碼方式: {args.encoding}")
    print(f"開始日期: {args.start_date}")
    print(f"處理時間: {args.process_time}")
    print(f"處理數量: {args.quantity}")
    print(f"處理比例: {args.ratio}%")
    print(f"處理方式: {args.process_type}")
    print(f"是否備份: {'是' if args.backup else '否'}")
    print(f"密碼是否設置: {'是' if args.password else '否'}")
    print(f"自定義命令: {args.custom_command if args.custom_command else '無'}")

if __name__ == "__main__":
    main()

應用場景

  • 為內部工具提供非技術用戶友好的界面
  • 快速原型開發,避免編寫復雜 GUI 代碼
  • 數據預處理/分析腳本的可視化操作
  • 教學演示中展示命令行工具的工作原理
  • 需要文件/目錄選擇器等 GUI 組件的場景

總結

優勢

局限性

? 極簡集成(僅需1個裝飾器)

? 不適合復雜交互式應用

? 保留原始命令行邏輯

? 自定義布局能力有限

? 豐富的內置控件

? 大型文件處理需配合進度條

? 降低非技術用戶使用門檻

? 無法完全替代專業GUI框架

使用建議:

  • 最佳場景:快速為現有命令行工具添加 GUI
  • 推薦組合:Gooey + argparse + Pandas(數據處理工具)
  • 進階方案:復雜需求可結合PyQt/Tkinter

Gooey通過單行裝飾器即可將命令行程序轉化為用戶友好的圖形界面。智能解析 argparse 參數并自動渲染為豐富的 GUI 組件(如文件選擇器、復選框、下拉菜單等),徹底消除了編寫傳統 GUI 代碼的復雜度。

責任編輯:趙寧寧 來源: 程序員老朱
相關推薦

2025-06-04 08:05:00

Peewee?數據庫開發

2025-06-09 10:15:00

FastAPIPython

2025-06-05 08:10:00

PyneconePythonWeb 應用

2025-05-27 08:00:00

Pythonemoji

2025-05-29 10:00:00

ZODBPython數據庫

2025-06-10 08:00:00

Pygalpython

2025-06-05 10:00:00

GensimPython

2025-06-09 07:25:00

filelock數據庫

2024-04-01 05:00:00

GUIpythonDearPyGui

2025-05-28 08:00:00

Pythonpython-jos開發

2025-06-03 10:00:00

LiteLLMPython

2025-06-03 08:30:00

PotteryRedisPython

2014-04-23 11:11:27

Linux下載管理器uGet

2020-06-08 07:52:31

Python開發工具

2023-01-16 18:16:49

CinnamonLinux桌面環境

2011-11-02 12:38:12

華為華為ARG3

2023-11-28 14:22:54

Python音頻

2022-07-21 09:50:20

Python日期庫pendulum

2024-07-02 11:29:28

Typer庫Python命令

2021-05-19 22:23:56

PythonJavaScript數據
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 在线午夜电影 | 亚洲精品久久视频 | 91电影| 99精品99| 久久综合99| 欧美综合久久 | 成人国产在线视频 | 搞黄视频免费看 | 久久国产精品一区二区三区 | 国产精品亚洲精品 | 中文字幕在线精品 | 国产精品国产三级国产aⅴ无密码 | 在线视频一区二区 | 国产日韩久久 | 国产精品成人一区二区三区夜夜夜 | 久久久99国产精品免费 | 久草青青草 | 日本久久www成人免 成人久久久久 | 蜜桃久久 | 中文字幕视频网 | 亚州综合一区 | 能看的av| 狠狠亚洲 | 欧美精品久久久 | 操一草| 日日噜噜夜夜爽爽狠狠 | 国产午夜精品久久久久 | 欧美精品一区二区三区在线播放 | 久久亚洲一区二区三区四区 | 国产精品久久久久久吹潮 | 日韩在线免费视频 | 草久视频| 91精品国产综合久久婷婷香蕉 | 久久涩涩 | 九九热热九九 | 午夜一区二区三区视频 | 久久精品视频网站 | h视频在线免费看 | 精品国产一区二区三区性色 | 亚洲a在线观看 | 盗摄精品av一区二区三区 |