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 · 2022-06-23 16:33:49 +08:00 · 8535 次点击
    这是一个创建于 889 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    48 条回复    2022-08-30 10:52:55 +08:00
    ttgo
        1
    ttgo  
       2022-06-23 16:46:04 +08:00
    qt6?
    kanari
        2
    kanari  
       2022-06-23 16:49:29 +08:00
    pyqt?
    hhhhhh123
        3
    hhhhhh123  
    OP
       2022-06-23 16:50:05 +08:00
    都是 推荐这个吗? 市面上 很多公司都是用这个吗? @kanari @ttgo
    cqroot
        4
    cqroot  
       2022-06-23 16:51:35 +08:00
    pysider2
    bavtoex
        5
    bavtoex  
       2022-06-23 16:52:05 +08:00
    python 小白,开发一些自用的小工具,用了 qt5 还挺方便的,用的是 PySide2 这个库
    westoy
        6
    westoy  
       2022-06-23 16:52:28 +08:00
    有没有一种可能, 现在已经没人拿 python 写 GUI 了......

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

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

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

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

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

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

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