V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
loading
V2EX  ›  问与答

python web 全栈背景如何开始 windows GUI 开发

  •  
  •   loading · 2014-02-23 10:13:03 +08:00 via iPhone · 7158 次点击
    这是一个创建于 3960 天前的主题,其中的信息可能已经有所发展或是发生改变。
    目前使用Flask开发各种业务crud系统,后续可能会接受另一项工作,会设计windows 的GUi程序开发,语言不重要,会设计数据的crud,显示图片,根据模板批量导出word或excel文件,程序大多数要连接线上数据库(什么数据库就不用吐槽了…)

    前面看到nodejs有node-webkit似乎一下子js把我解放了,但认真看了评论,似乎不太合适,毕竟太新了,变动太多。

    简单说就是要同时兼顾bs和cs模式的开发,xp可能要支持很久,但又想兼顾linux,python+QT不知是否靠谱,cx_freeze打包不知靠谱不,被分发的用户都是it傻瓜型上帝用户…
    第 1 条附言  ·  2014-02-25 17:43:17 +08:00
    Htmlayout(windows only,单文件dll,支持css3)
    见于这里:
    http://www.cnblogs.com/by1990/p/3437070.html
    顺藤摸瓜找回以前偶遇的AAuto…我打算用它了,毕竟文件小,而且像C!
    C++和.Net我玩不转…
    第 2 条附言  ·  2014-02-25 17:48:45 +08:00
    node-webkit是备用,等我把backboneJS玩好再说。目前还是bs项目主流。
    18 条回复    2014-06-12 23:16:15 +08:00
    SErHo
        1
    SErHo  
       2014-02-23 10:40:35 +08:00   ❤️ 1
    Powerbuilder 就是干这个的。
    loading
        2
    loading  
    OP
       2014-02-23 11:13:01 +08:00 via iPhone
    @SErHo 不是这样的需求…但还是感谢您的认真阅读

    也许我需要的是wxPython,打包经验这类建议会node-webkit的参考案例
    FarBox
        3
    FarBox  
       2014-02-23 11:15:18 +08:00   ❤️ 3
    FarBox Editor是基于Python+PySide+QT实现的,打包用的是py2exe,打了mac与win两个包,前者的压缩比不是太理想,后者还不错。Linux下不是很熟悉,一直没有打过包。

    QT虽然很成熟,Mac下有偶发的一些问题,也不好解决。但比其它的框架,应该会稳定很多。

    既然是全端的背景,看文档就好了,没有太大的困难。我们以前也是从没有写过GUI的,直接就上手了。
    oio
        4
    oio  
       2014-02-23 12:45:33 +08:00 via iPad   ❤️ 1
    LZ 和我经历类似,不过有点相反,我是先从事开发 GUI,后基于 Flask 开发 crud 系统,兼顾 BS | CS,你说的这些 Python+QT 肯定是能满足的, cx_freeze 打包 exe 还算靠谱,不过也有坑,打包后的文件挺大的,可以再用 innosetup 做个 installer 给傻瓜用户。^_^

    当然 LZ 肯定很熟悉 JS,可以试试走这条路,QT 也有 webkit 的封装,我用过感觉依赖好多。我觉得用 JS 写 GUI ,无论是node-webkit, 还是网易的 Hex, 也许才算得上真正的跨平台。不过现在貌似写桌面 GUI 的不热门。
    c
        5
    c  
       2014-02-23 12:52:14 +08:00
    @FarBox FarBox Editor开放源代码了吗?
    loading
        6
    loading  
    OP
       2014-02-23 16:48:17 +08:00 via iPhone
    @FarBox PySide,我去看看。怎么会选这个呢?能分享下选定的原因吗?谢谢


    @oio 请问下node-webkit和hex这类,和node一起打包,基本体积是多少呢?
    另:感觉node-webkit和hex都不靠谱啊,怎么就没国际性的库呢…
    innosetup我去看看,似乎能包得很高大上!
    感谢提示hex和innosetup!
    likaci
        7
    likaci  
       2014-02-23 17:52:59 +08:00   ❤️ 1
    要么投入.Net的怀抱吧,哈哈哈。
    oio
        8
    oio  
       2014-02-23 20:28:14 +08:00   ❤️ 1
    @loading,没用 node-webkit 做过大型程序,打包的话,nm 本身就近 40 MB,总体未压缩前基本有 50 MB (比 Python+QT 打包还大, PyQT5 又比 PyQT4/PySide 大,它们和 nw 都链接了一些相同的库,同时看起来 nw 的目录要干净一点)。通过 Inno Setup 做成 Installer,使用 lzma 压缩的话,可以压到 10 几 MB 吧。

    跨平台方案基本就三种:GTK、QT、wxWidgets,对应的 python bindings:PyGTK (GTK+)、PyGObject (GTK+3)、PyQT、PySide、wxPython。Python 还有一个自带的 Tkinter。其中 Py3k 支持的成熟度: Tkinter/PyQT/PySide > PyGObject, wxPython。

    PySide 和 PyQT 主要非技术差异在于 License:PySide -> LGPL、 PyQT -> GPL。 另外PySide 目前还不支持 QT5, PyQT 支持 QT5。

    GTK+ 正处于凌乱状态中....转到 GTK+3,于是就选了 QT。

    还捉摸过一段时间 python-webkit, 类似于 node-webkit,用 python 代替 js 操作 DOM.....个人体会:看起来很美好,其实都没有 PyQT/PySide 好用!!!!

    根据 License,商业应用首选 PySide 了。
    loading
        9
    loading  
    OP
       2014-02-23 20:47:30 +08:00 via iPhone
    @oio 伸手地问一下,窗体设计时,是像vb那样鼠标拖控件吗?因为像web开发写窗体感觉会吐啊(就算直接bootstrap),写一个小程序不会在调整位置就用90%时间吧…
    timonwong
        10
    timonwong  
       2014-02-23 21:07:46 +08:00   ❤️ 1
    @loading
    有Qt Designer,编辑.ui文件。
    不过控件的位置一般不是随便移动的,是根据Layout以及Spacer来布局的(不然会丢失跨平台,因为各个平台的控件大小不一样,dpi也是问题)。
    我只用过pyside,加载ui文件用QUiLoader, PyQt应该类似
    oio
        11
    oio  
       2014-02-23 21:21:14 +08:00   ❤️ 1
    @loading,GTK 的 Glade, QT 的 QT Designer,都是 WYSIWYG 的 UI 设计器。没用过 Glade,QT Designer 还可以。PySide/PyQT 都可以 on-the-fly 的载入 .ui 文件。

    没有用过 wxPython ,不知道 wxPython 是什么状况~@@
    lnehe
        12
    lnehe  
       2014-02-23 21:24:54 +08:00   ❤️ 1
    dndx
        13
    dndx  
       2014-02-24 02:58:07 +08:00   ❤️ 1
    Qt + C++
    要跨平台有跨平台,要性能有性能,要文档有文档。
    loading
        14
    loading  
    OP
       2014-02-24 09:19:57 +08:00 via iPhone
    @dndx c++也能一次编程到处调试?能稍微介绍下吗?界面要高大上有现成库吗?最怕做界面了…
    loading
        15
    loading  
    OP
       2014-02-25 17:45:24 +08:00 via iPhone
    @oio
    @FarBox
    @likaci
    @timonwong
    @lnehe
    @dndx
    @c
    最后选了AAuto+Htmlayout,具体见附言
    likaci
        16
    likaci  
       2014-02-25 21:02:23 +08:00
    @loading 可以试试ahk (autohotkey),也是脚本语言,不过目前没有一个特别好的ide,外国玩家也很多。
    听说快手很好, 有机会试试。
    fdsfsdfsdf3334
        17
    fdsfsdfsdf3334  
       2014-02-26 08:17:04 +08:00
    我也打算学wxPython ,我以前学过一段时间的qt, 不过自己笨 觉得太累,开发软件周期长 [1个人开发] 后来才学了python,接下来打算把python好好研究

    楼主可以考虑看看http://kivy.org/, 跨平台 [ IOS android win linux ] ,支持触屏, 我本来打算学这个,但是中文文档好少,英文看起来辛苦, 由于时间原因 就放弃学这个了
    yangzh
        18
    yangzh  
       2014-06-12 23:16:15 +08:00
    @FarBox 做了一些研究。似乎现在 pyinstaller 比 py2exe 要好太多。请问一下你们现在(半年过去了)的开发是不是还是 python2.7+pyside+qt4+py2exe 呀?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5662 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 06:30 · PVG 14:30 · LAX 22:30 · JFK 01:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.