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
hhhhhh123
V2EX  ›  Python

现在 Python 开发 GUI 用什么框架? 因项目需要使用 GUI

  •  
  •   hhhhhh123 · 13 天前 · 4174 次点击

    如题, 想知道现在 GUI 开发用什么框架? 框架的有点和缺点 。 也可以留个名字, 我自己查。 最好是流行的。。很多公司都用的。, 这样对自己也好。嘿嘿。 谢谢啦!

    47 条回复    2022-07-05 11:03:53 +08:00
    ttgo
        1
    ttgo  
       13 天前
    qt6?
    kanari
        2
    kanari  
       13 天前
    pyqt?
    hhhhhh123
        3
    hhhhhh123  
    OP
       13 天前
    都是 推荐这个吗? 市面上 很多公司都是用这个吗? @kanari @ttgo
    cqroot
        4
    cqroot  
       13 天前
    pysider2
    bavtoex
        5
    bavtoex  
       13 天前
    python 小白,开发一些自用的小工具,用了 qt5 还挺方便的,用的是 PySide2 这个库
    westoy
        6
    westoy  
       13 天前
    有没有一种可能, 现在已经没人拿 python 写 GUI 了......

    以前 CPyUG 也见过不少人讨论 pywin32 、pygtk 、wxpython 、pyqt 、pyside , 但是正经拿来写的也不多, 印象里有点热度的还是诺基亚卖掉 qt 之前, 最近五六年都没见过有这方面讨论了......手头用过的也就 linux 下面有一些 pytk 写的流水工具, 出名点的有印象的也就 displaycal 用的 wxpython
    cqroot
        7
    cqroot  
       13 天前
    PySide2 或者 PyQt
    kanari
        8
    kanari  
       13 天前
    @hhhhhh123 我公司是,看看其他老哥
    cxsz
        9
    cxsz  
       13 天前   ❤️ 1
    复杂项目上 pyqt ,界面好看,成熟的组件比较多,开发也比较快,但日常的小脚本,我一般用自带的 tkinter
    cqroot
        10
    cqroot  
       13 天前
    现在写界面大多 electron ,nw.js ,工业上 Qt 、C#,必须要用 python 的话就选 qt 系的吧
    hhhhhh123
        11
    hhhhhh123  
    OP
       13 天前
    感谢各位的意见 ,
    iamxcd123
        12
    iamxcd123  
       13 天前
    公司项目的话建议 pyqt ,如果自己写的小脚本小程序自带的 tkinter 就足够。

    哈哈,顺便打个广告
    自己写的一个 tkinter 布局小工具
    https://zhuanlan.zhihu.com/p/532678277
    wonderfulcxm
        13
    wonderfulcxm  
       13 天前 via iPhone
    qt 好像有授权问题
    HITMengbin
        14
    HITMengbin  
       13 天前
    pyqt ,使用 qtdesigner 速度很快
    dcsuibian
        15
    dcsuibian  
       13 天前
    PyQt ,但正经项目用这个的好像不多。Qt 的倒是不少。

    或者走弯路,用 Web 技术做 GUI ,Python 做服务器。这样别说 Electron 了,甚至可以直接在网页上展示。而且生态圈成熟。但看应用场景,这可能会使得 Python 的地位很尴尬。
    00ing
        16
    00ing  
       13 天前
    pyqt 或 pysider 其他不建议了
    BingoXuan
        17
    BingoXuan  
       13 天前
    pywebview ,用 web 写 ui 。本质类似于 go 的 wails 或者 rust 的 tauri 。调用系统 webview 作为主界面,用 web 技术开发
    roundgis
        18
    roundgis  
       13 天前 via Android
    Pyside2
    Yunen
        19
    Yunen  
       13 天前
    一般这种情况我都选择 web ,哈哈
    Buges
        20
    Buges  
       13 天前 via Android
    有个 pysimplegui ,给一些小脚本或 ml 项目加个界面很方便。
    当然正经的 gui app 项目,只建议 pyside6 。
    Mark24
        21
    Mark24  
       13 天前
    QT 要收费
    txfly
        22
    txfly  
       13 天前 via Android
    pyside6 ,pygobject ,kivy
    FrankHB
        23
    FrankHB  
       13 天前   ❤️ 1
    @westoy 一时间不可能没人写。
    至少 TortoiseHg 还有活人维护。
    另外我就因为一时半会儿撸不出一个 Qt 而被迫得抄 Shiboken……(虽然这严格上不算用 Python 写,但是至少得抄点 demo )。
    nyxsonsleep
        24
    nyxsonsleep  
       13 天前
    用过 python 的一些 gui 。
    我的看法是前后端分离,前端用 web 实现。
    pyqt 有很多 bug ,有一定中文资料,但是有的小问题还是搜不到答案,非常不好用,非常不建议用于长期维护。
    pysider 的中文资料很少,偶尔会和 pyqt 冲突。
    pyqt 商用收费,印象中上万吧? pysider 似乎不收费?
    个人娱乐用 tinker 之类的倒是无所谓。
    nyxsonsleep
        25
    nyxsonsleep  
       13 天前
    @dcsuibian 小型应用快速部署,没有大规模并发,这就到不了 python 服务器端的瓶颈,何谈 Python 地位尴尬。
    反过来理解,难道用 pyqt 实现桌面端,python 就突然失去了之前存在的问题?
    SenLief
        26
    SenLief  
       13 天前
    python 打包后体积都比较大,直接起个 web 好了,这玩意当 gui 多好。
    anmu
        27
    anmu  
       13 天前
    PyQt
    hallDrawnel
        28
    hallDrawnel  
       13 天前
    直接用网页画,pyqt 也不好用。
    dcsuibian
        29
    dcsuibian  
       13 天前
    @nyxsonsleep 不是那个意思。

    我之前想 Java 配合 Electron 做客户端程序。一个做核心、一个做界面,后来发现比较鸡肋。
    1 、如果是离线应用,比如 picgo ,核心部分直接用 nodejs 写算了。js 调 js 方便太多了,而且打包也好打。(尽管我对 Java 更熟悉,但用 js 利大于弊)
    2 、如果是在线应用,需要调后台接口,那基本就是做 web 了,这个是没问题。但客户端的必要性就很大程度上削弱了。

    当然,应用场景还是有的。比如 B 站的客户端(从 web 转过来的)、Telegram 的客户端、ClashX (核心是别人 Go 开发的)这样的。Python 的话,如果是后台深度学习,做个 GUI 程序方便人家调公司的接口倒也没问题。

    主要就是 js 会削弱原语言的不可替代性。万一整半天换语言了就比较尴尬😓
    ComputerIdiot
        30
    ComputerIdiot  
       13 天前 via Android
    @dcsuibian 可以看看 Blazor
    FrankHB
        31
    FrankHB  
       13 天前
    @nyxsonsleep 关键不是 py ,而是开发桌面应用就算不用 py ,会遇到纯 qt 的问题;不用 qt ,基本上会有比 qt 本身更糟糕的问题(特别是规模稍微一大的时候),横竖都得忍。
    用 py+qt 会有 py 的问题+qt 的问题,但对许多用户看起来会比直接用 qt 的问题少。而现在用其它+qt 是没那么可行的。
    当然,移植现成品另说(但能在桌面上移植的东西里不少已经是 qt 的形状了)。

    @SenLief 一不小心直接卡翔就有的哭了,打包就忍忍吧。
    简单到一定地步是没那么夸张,但这样打包大就更心烦了。
    nyxsonsleep
        32
    nyxsonsleep  
       13 天前
    @dcsuibian
    换语言这种只要不是个傻子项目经理就不会同意的,qq 微信写成这个样我也没看他们换语言。
    至于后端程序用什么语言取决于需求,能达到同样的目的,用什么语言都一样。
    MinQ
        33
    MinQ  
       13 天前
    pyqt 你会遇到 python 和 qt 各自糟心的地方叠加在一起,我们是用 python 写了底层,然后用 C#写了界面,中间用 pythonnet 调用
    roundgis
        34
    roundgis  
       13 天前 via Android
    @MinQ 打包發佈會不會很麻煩?
    youthfire
        35
    youthfire  
       13 天前 via iPhone
    直接用的 tkinter ,不过似乎 pyqt 更流行,可能是布局方便些
    MinQ
        36
    MinQ  
       13 天前 via Android
    @roundgis python 会用 conda-pack 打成一个压缩包。C#侧打包的时候会下载这个压缩包然后解压,再打包,我们用 CI 脚本自动处理这些事所以感觉也没有多麻烦
    Deteriorator
        37
    Deteriorator  
       13 天前
    公司就用 pyside 吧,pyqt 需要商业授权
    solopython
        38
    solopython  
       12 天前
    roundgis
        39
    roundgis  
       12 天前 via Android
    @MinQ conda-pack 是不是只能用於 anaconda 發行的 python 版本?
    qrobot
        40
    qrobot  
       12 天前
    @BingoXuan #17 那为什么不用 Electron , 这样还可以解决不同浏览器的兼容性问题
    MinQ
        41
    MinQ  
       12 天前
    @roundgis conda-pack 只能打包由 conda 创建的 python 环境
    BingoXuan
        42
    BingoXuan  
       12 天前
    @qrobot
    electron 太大了。我的使用场景无法分发这么大软件。我写的一个 mac app 压缩后才 3.3M ,还有内部使用的 rpc 库和一大堆功能。
    jiafeiblog
        43
    jiafeiblog  
       12 天前
    直接 python 启个 web 服务,启用默认浏览器展示,简单实用
    tzigone
        44
    tzigone  
       12 天前
    不如转 C# WPF or WinForm ,用 DevExpress 组件丝滑得很
    xinbancan9
        45
    xinbancan9  
       4 天前
    Pyqt5 吧,开源免费的协议
    codeli
        46
    codeli  
       2 天前
    刚好最近也有这方面的场景,组了个交流群,欢迎各位大佬加入探讨 PyQt 。
    llsquaer
        47
    llsquaer  
       1 天前
    https://blog.csdn.net/weixin_45622939/article/details/115244978 这个 pyqt 的 简单点.用户也多,有问题直接搜..学一些奇奇怪怪的以后也没啥用
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3759 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 01:17 · PVG 09:17 · LAX 18:17 · JFK 21:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.