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

python 开发者写 GUI,是用 PyQt 还是 wxPython,而对于 Tkinter,为什么这么多人说它不好啊?

  •  
  •   tooweakchen · 2015-09-20 14:56:48 +08:00 · 38153 次点击
    这是一个创建于 3350 天前的主题,其中的信息可能已经有所发展或是发生改变。

    python 开发者写 GUI,是用 PyQt 还是 wxPython ,而对于 Tkinter,为什么这么多人说它不好啊?

    44 条回复    2020-07-15 16:00:04 +08:00
    Smirnoff
        1
    Smirnoff  
       2015-09-20 15:06:47 +08:00
    Qt 吧 你会爱上他的
    zhuangzhuang1988
        2
    zhuangzhuang1988  
       2015-09-20 15:09:23 +08:00
    因为那些人瞎扯, 不会用.. 这东西你自己试试 什么好不好的, 只有自己体会..
    tooweakchen
        3
    tooweakchen  
    OP
       2015-09-20 15:33:56 +08:00
    @Smirnoff 我用 pycharm 中 pip 来安装 python-qt5,但是一直报错, ubuntu14.04 系统
    Felldeadbird
        4
    Felldeadbird  
       2015-09-20 15:38:07 +08:00 via iPhone
    qt 报错你看看编译的信息,应该是你的 qt 库文件没有声明对
    winkidney
        5
    winkidney  
       2015-09-20 15:41:35 +08:00
    apt-get intall pyqt
    qt5 类似,这样装吧,免得折腾 qt 本身的包
    gy911201
        6
    gy911201  
       2015-09-20 15:47:33 +08:00
    @tooweakchen pyqt 在 pip 里只有信息,没有代码,所以 pip 肯定是装不了 pyqt 的
    tooweakchen
        7
    tooweakchen  
    OP
       2015-09-20 15:52:39 +08:00
    @winkidney 那样装不了
    spacewander
        8
    spacewander  
       2015-09-20 16:00:52 +08:00
    因为 Tkinter 颜值低
    jimzhong
        9
    jimzhong  
       2015-09-20 16:02:27 +08:00
    特别推荐 pyqt.
    lingo233
        10
    lingo233  
       2015-09-20 16:05:54 +08:00
    Tkinter 除了难看也就是难看了
    tooweakchen
        11
    tooweakchen  
    OP
       2015-09-20 16:13:49 +08:00
    @jimzhong 你是怎么安装 pyqt 的啊?
    winkidney
        12
    winkidney  
       2015-09-20 16:22:19 +08:00
    @tooweakchen 可以的,可能包名不对,我装过 n 次了……你不是 ubuntu 么
    winkidney
        13
    winkidney  
       2015-09-20 16:23:14 +08:00
    @gy911201 pip 可以装的,只要把 qt 的 binary 和 qt 的 devel 包先装了就行
    chengzhoukun
        14
    chengzhoukun  
       2015-09-20 17:49:23 +08:00
    Tkinter 不适合做大点的东西,目前只在 TeX Live 2015 里看到安装界面用到它
    htfy96
        15
    htfy96  
       2015-09-20 17:52:28 +08:00
    tkinter 真心难看,而且架构也不好
    zerh925
        16
    zerh925  
       2015-09-20 17:56:38 +08:00
    推荐 qt 的不考虑商业授权?
    我们现在用的 wxpython
    aheadlead
        17
    aheadlead  
       2015-09-20 18:02:40 +08:00
    tkinter 写点计算器之类的小玩意还不错
    大东西用 tk 写我觉得还是比较难受的
    jyjmrlk
        18
    jyjmrlk  
       2015-09-20 18:18:58 +08:00   ❤️ 2
    虽然不是很了解,但是前段时间不知道哪里看到这么一句话还是蛮有启发的:“好朋友都是这样的,往往喜欢把自己没搞懂的东西坚定地推荐给自己的死党。”。
    aisk
        19
    aisk  
       2015-09-20 18:24:08 +08:00
    丑,和系统原生风格完全不同,并且目前还不支持 retina display (这点尤其不能忍受)。
    wizardforcel
        20
    wizardforcel  
       2015-09-20 19:03:50 +08:00
    qt 比较方便,资料也略多一点。

    Tkinter 除了难看,接口也难用。
    WalkingEraser
        21
    WalkingEraser  
       2015-09-20 19:27:44 +08:00
    tk 真的丑哭了,偏爱 qt
    cxshun
        22
    cxshun  
       2015-09-20 19:30:48 +08:00
    建议用 QT ,资料不是一般地多啊。
    love
        23
    love  
       2015-09-20 19:39:27 +08:00   ❤️ 1
    我写过 python GUI ,不过我以后不打算再用 tk 和 qt 了。

    我推荐直接用 web 技术, react 尤其适合,效率比 tk 和 qt 高,且界面 UI 更灵活美观。
    iverson68214
        24
    iverson68214  
       2015-09-20 19:46:37 +08:00   ❤️ 2
    tk 本身動態 py 本身也是動態 二者組合起來程式一大 就慢上加慢
    Qt + py 能有 C++的速度, py 的優雅語法方便性,二者結合很搭。
    Qt 本身的庫大了點..
    但我試過用 c#、 java 、 pyqt 都寫個小程式 來試 啟動速度
    原本我以為 C#和 java 應該會較快,但結果出乎我預料之外,三者的啟動速度差不多,我沒實測時間
    c#和 java 跑 GUI 應該也是要載入蠻大的庫,所以沒辦法像 Notepad++ 那種啟動速度那麼快
    用 Qt 我覺得有一個很大優點,也是不用 拖拉方式,直接手寫也很好寫,現在再寫都不用拖拉視窗介面的方式來寫了
    推薦 Qt
    echo1937
        25
    echo1937  
       2015-09-20 19:47:49 +08:00
    @love 我也觉得 python 的 gui 还不如用 web 方便.
    patrickstar
        26
    patrickstar  
       2015-09-20 20:18:50 +08:00
    以前写 C++用过 Qt ,所以现在选择 PyQt ,但还是认为 Qt 的 GUI 开发效率仍然不足够高,不知道走 web 是不是可以更高效
    introom
        27
    introom  
       2015-09-20 20:40:58 +08:00
    看你需要干什么,每个都写过一遍就知道了。平常用 Py{Qt,Side}, 省事就用 tk 。 tk 好处是自带。
    julor
        28
    julor  
       2015-09-20 20:56:53 +08:00
    @love 有参考案例没?
    PythonAnswer
        29
    PythonAnswer  
       2015-09-20 22:54:19 +08:00
    5 个控件以内的小程序,喜欢直接上 tk ,也不用写类。

    大一些的应用,得上 qt 。 tk 很多控件都太简单,右键菜单,滚动条什么的,都要手动实现。
    qaulau
        30
    qaulau  
       2015-09-20 22:56:18 +08:00 via Android
    windows 用 jython , linux 就用 pyqt 吧
    izoabr
        31
    izoabr  
       2015-09-20 22:56:19 +08:00
    其实还有一个打包的问题是不是?

    发布程序的时候,对 QT 之类的依赖就会成为一个比较难的事,要么打包到程序里面,好大,要么让用户自己解决依赖问题,不易用。
    qaulau
        32
    qaulau  
       2015-09-20 22:57:53 +08:00 via Android
    @qaulau 写错, windows 下用 IronPython
    poke707
        33
    poke707  
       2015-09-20 23:48:49 +08:00 via Android
    有人讨论下 kivy 么?其实我也没用过,想看看评论。
    XIVN1987
        34
    XIVN1987  
       2015-09-20 23:55:36 +08:00 via Android
    @poke707

    qpython 新版本已经建议优先使用基于 bottle 和 html 的 webapp 了
    towser
        35
    towser  
       2015-09-20 23:59:30 +08:00
    18L 已经道破天机
    Deardrops
        36
    Deardrops  
       2015-09-21 00:35:02 +08:00 via Android
    @qaulau 提到 Ironpython ,不考虑移植性,直接用 c#和 wpf 应该更好吧
    g00001
        37
    g00001  
       2015-09-21 02:57:25 +08:00
    python 写点桌面软件界面还真是挺麻烦,在 windows 上 那还是 aardio 做出来的界面小而美。
    fangdingjun
        38
    fangdingjun  
       2015-09-21 09:07:43 +08:00
    我一直在用 pygtk ,使用 glade 画界面,代码只专注于事件处理,感很不错。
    AnyOfYou
        39
    AnyOfYou  
       2015-09-21 10:26:58 +08:00
    感觉 PyQt 的文档看起来很蛋疼。
    jimzhong
        40
    jimzhong  
       2015-09-21 13:24:23 +08:00
    @tooweakchen 我用的是 fedora, 可以用 dnf 安装
    weyou
        41
    weyou  
       2015-09-21 13:34:40 +08:00
    @AnyOfYou 我都是直接看 qt 的文档, 没遇到过什么问题。
    weyou
        42
    weyou  
       2015-09-21 13:35:19 +08:00
    @poke707 顶一下 kivy ,有人发表下意见吗
    g0t3n
        43
    g0t3n  
       2015-09-21 15:53:09 +08:00
    @love 曾经我也纠结在 python 的 ui ,后来发现写 web 才是真正解决问题的的最佳实践啊
    ZDLv3ex
        44
    ZDLv3ex  
       2020-07-15 16:00:04 +08:00
    @lingo233 主要是太简陋了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5710 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 01:46 · PVG 09:46 · LAX 17:46 · JFK 20:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.