python web 全栈背景如何开始 windows GUI 开发 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
loading
0.06D
V2EX    问与答

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

  •  
  •   loading 2014-02-23 10:13:03 +08:00 via iPhone 7581 次点击
    这是一个创建于 4260 天前的主题,其中的信息可能已经有所发展或是发生改变。
    目前使用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 div class="fr">     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     Solana     3206 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 10:47 PVG 18:47 LAX 03:47 JFK 06:47
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86