V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
chy5301
V2EX  ›  Python

有没有比较方便好用的 Python GUI 框架?

  •  2
     
  •   chy5301 · 14 天前 · 5432 次点击
    想把之前写好的脚本工具转换成 GUI 的形式,让不了解怎么改脚本中的各种配置的人用得时候更方便一些
    53 条回复    2025-06-14 12:31:12 +08:00
    loading
        1
    loading  
       14 天前
    如果是我,我会使用 web 页面,写成配置后生成配置文件的方式。

    这样 python 不需要额外带这个 GUI 框架。

    当然,看你技能树了。

    如果只是为了配置文件,用 tkinter 即可,核心还是你本身那个工具,没必要花太多心思。
    loginv2
        2
    loginv2  
       14 天前
    写成网页不就好了 python 启动 http 服务
    chy5301
        3
    chy5301  
    OP
       14 天前
    @loading 是个类似计算器的工具,需要 “在界面上设置输入➡️计算➡️在界面上显示结果➡️再修改输入再计算” 这样,用 web 页面的效果会更好吗?
    zeusho871
        4
    zeusho871  
       14 天前 via Android
    最简单就是楼上说的 tkinter 这东西 ai 生成的还是可以看
    然后是 pyside ( pyqt ),这个配合 nuitka 可以打包成 exe (上面那个 tk 也可以的)
    然后就是 nicegui 以及 rio ui ,这个是用纯 python 写 web ui 的,好像是搭了一个 ws 服务器然后前端代码和后端通信然后套个 pywebview 之类的东西。具体看实现
    loading
        5
    loading  
       14 天前
    原来是个计算器,我以为是复杂的 .conf 文件呢,建议用 tkinter 随便做做就行
    chy5301
        6
    chy5301  
    OP
       14 天前
    @loading 对😂就个是给同事用的计算器,他们觉得改代码太麻烦
    chy5301
        7
    chy5301  
    OP
       14 天前
    @zeusho871 我先用 tkinter 看看效果
    crackidz
        8
    crackidz  
       14 天前   ❤️ 1
    以前还折腾折腾 GUI ,弄个 Web 界面
    现在是懒了,gradio 直接糊😂
    sun82kg
        9
    sun82kg  
       14 天前
    用 Tauri 画界面,把 python 功能包进去。又快又好看
    TimePPT
        10
    TimePPT  
       14 天前 via Android
    @crackidz Gradio +1 ,效率奇高
    XIVN1987
        11
    XIVN1987  
       14 天前   ❤️ 1
    pyqt 或者 pyside ,有 qtdesigner 可以拖拽生成界面,,简单很多。。唯一缺点是打包生成的 exe 稍大( 30MB 起步)

    不要用 tkinter ,,生成界面太丑,,不忍直视。。

    我用 pyqt 做的一些小工具: https://github.com/XIVN1987/PYQTool
    bronyakaka
        12
    bronyakaka  
       14 天前
    IamLostInCoding
        13
    IamLostInCoding  
       14 天前
    pyqt
    coderluan
        14
    coderluan  
       14 天前   ❤️ 2
    这种简单必须是 Gooey ,比上面所有的都简单,比大部分都好看,如果你本身就有 ArgumentParser ,那么两行代码可能就够了,https://github.com/chriskiehl/Gooey
    coldle
        15
    coldle  
       14 天前
    如果不是太复杂的脚本,建议让 ai 转成 js 放 html 文件里 😂 我拿给不懂技术的人用挺好使
    iorilu
        16
    iorilu  
       14 天前
    给懂点技术的可以用 web 方式

    纯小白建议用 tk 或 qt 之类的打包好 exe 一键执行
    PluginsWorld
        17
    PluginsWorld  
       14 天前
    electron-egg 刚用这个搭配 python 完成了业务
    ldyisbest
        18
    ldyisbest  
       14 天前
    试试 streamlit
    Cooky
        19
    Cooky  
       14 天前
    pyside 易学易用,tkinter 优点就是小,web 界面依赖少
    xiaojie668329
        20
    xiaojie668329  
       14 天前
    tkinter 就好,帮朋友写个 wps 文档批量转换工具,ai 生成直接一键跑起来。
    NoOneNoBody
        21
    NoOneNoBody  
       14 天前
    昨天跟 gpt 说了 123456...点后,gpt 就出了个 pyqt6 的脚本了,界面运行完全没问题
    然后里面 webengine 控件跑 js ,改了十几个小时都没弄好,今天还要继续……
    eephee
        22
    eephee  
       14 天前
    https://github.com/prompt-toolkit/python-prompt-toolkit 这个也不错,而且也适用于 TUI 场景
    laike9m
        23
    laike9m  
       14 天前 via Android   ❤️ 1
    那肯定是 BeeWare 了
    https://beeware.org/
    tt0411
        24
    tt0411  
       14 天前
    收藏了, 上面提到了很多不错的框架
    tywtyw2002
        25
    tywtyw2002  
       14 天前 via iPhone
    不打包自用的话 上 py imgui 或者 Dear PyGui

    之前用过 PySimpleGUI 还行,是套壳 webview 的
    mightybruce
        26
    mightybruce  
       14 天前
    这个简单场景 tkinter 足够,复杂一点的话考虑 wxPython.
    sunmker
        27
    sunmker  
       14 天前
    C# 的 winform ,拖拖拉拉控件就行
    bg7lgb
        28
    bg7lgb  
       14 天前
    简单用用,考虑 Tkinter ,美化可以用 tkbootstrap,能接受。
    功能复杂点的,可以用 Pyside2 ,
    simo
        29
    simo  
       14 天前
    猜你项目应该挺小的,tkinter 是最优选择,可以用 cursor 估计 1 小时就搞定了。如果平台兼容性要求高,维护麻烦,可以做成 web 的,省心
    caryRowen
        30
    caryRowen  
       14 天前
    wxpython
    GabrielleBellamy
        31
    GabrielleBellamy  
       13 天前
    要简单,不求审美的话用 Tkinter 就行。
    需要原生组件、考虑复杂设计,我一般用 PyQt 。
    ClericPy
        32
    ClericPy  
       13 天前
    总结下吧
    Streamlit 和 pywebio 转 web 挺简单的, gradio 大模型时代也又火了一阵

    如果喜欢纯 gui ,新手的话 pysimplegui 够用了,够简单,但是 5.0 以后必须注册帐号不喜欢了,改成一样 API 的 freesimplegui 了

    其他人直接给你推荐的 kivy pyqt/pyside wxpython 之类的都是比较正经的选择了

    一句话,想快速搞定:选 freesimplegui 、pywebio 、gradio 之类的
    huluhulu
        33
    huluhulu  
       13 天前
    The best one: pywebview
    COW
        34
    COW  
       13 天前
    企业里有 Jenkins 的话,直接配合参数化构建就能做了,没什么开发成本
    lxxiil
        35
    lxxiil  
       13 天前 via iPhone
    计算器的 aardio 或者易语言就行了,exe 大小几百 kb
    B1ankCat
        36
    B1ankCat  
       13 天前
    12tall
        37
    12tall  
       13 天前
    wxpython 有一个 wxFormBuilder 的设计器。界面比较简陋,但是功能尚可,可以通过 Nuitka 打包成二进制文件。
    jackOff
        38
    jackOff  
       13 天前
    pyside2
    iorilu
        39
    iorilu  
       13 天前
    其实 python 问题就在这里

    任何事情都有无数解决方案, 但没什么公然的所谓最佳方案, 都是相对并不怎么完美的方案
    chf007
        40
    chf007  
       13 天前
    如果只是为了收集脚本参数,可以用 pythondialog 这种

    主要在 Linux 下的话,Whiptail 这种。
    SanjinGG
        41
    SanjinGG  
       13 天前
    如果不考虑外观,让 AI 用 tkinter 写个最快的。熟悉 web 的话,直接用 web 写个,python 启动下也行,好多脚本也是这么做的。
    huangsijun17
        42
    huangsijun17  
       13 天前
    不复杂的话,可以试试看这个:

    https://github.com/iamxcd/tkinter-helper
    PanuiQ
        43
    PanuiQ  
       13 天前
    这个框架很好玩,可以直接把 python 函数直接转换成,工作流的中 node 。
    https://github.com/IndieSmiths/nodezator
    ggzhyipeng
        44
    ggzhyipeng  
       13 天前
    web 吧,随便找个 ui 框架颜值就不差了。给同事用可以直接部署到内网服务器。也可以用 webview 打包成可执行文件分发,比如 pywebview
    wzly
        45
    wzly  
       13 天前
    没人直到 flet 吗? ui 很漂亮 日本那边很多人用
    clino
        46
    clino  
       12 天前
    https://github.com/webui-dev/python-webui
    Use any web browser as GUI, with Python in the backend and HTML5 in the frontend.
    这个看起来不错,比 Electron 要轻量化很多,试了一下 python demo 感觉很简单
    iamxcd123
        47
    iamxcd123  
       12 天前
    在线画一个就行了 www.pytk.net
    samwellwang0
        48
    samwellwang0  
       12 天前
    flet ,python 编译成 flutter ,写过几个简单的小软件 还可以
    GarrickLin
        49
    GarrickLin  
       12 天前
    streamlit
    xxlsize
        50
    xxlsize  
       11 天前
    直接扔给 ai 让他基于 pyqt 生成界面,要求界面美观、用户友好,就完事
    fakEHacker
        51
    fakEHacker  
       10 天前
    pywebview 这么有?这样子的
    DINGONE
        52
    DINGONE  
       8 天前 via iPhone
    Flet
    liuhai233
        53
    liuhai233  
       8 天前
    @fakEHacker pywebview 不错的 起个 http 就行了,下面是一个例子,pyinstaller 打包二进制就能分发了
    https://github.com/awsl-project/redbook_lang/blob/main/gui.py
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2622 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 12:13 · PVG 20:13 · LAX 05:13 · JFK 08:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.