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

2014-02-23 10:13:03 +08:00
 loading
目前使用Flask开发各种业务crud系统,后续可能会接受另一项工作,会设计windows 的GUi程序开发,语言不重要,会设计数据的crud,显示图片,根据模板批量导出word或excel文件,程序大多数要连接线上数据库(什么数据库就不用吐槽了…)

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

简单说就是要同时兼顾bs和cs模式的开发,xp可能要支持很久,但又想兼顾linux,python+QT不知是否靠谱,cx_freeze打包不知靠谱不,被分发的用户都是it傻瓜型上帝用户…
6968 次点击
所在节点    问与答
18 条回复
SErHo
2014-02-23 10:40:35 +08:00
Powerbuilder 就是干这个的。
loading
2014-02-23 11:13:01 +08:00
@SErHo 不是这样的需求…但还是感谢您的认真阅读

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

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

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

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


@oio 请问下node-webkit和hex这类,和node一起打包,基本体积是多少呢?
另:感觉node-webkit和hex都不靠谱啊,怎么就没国际性的库呢…
innosetup我去看看,似乎能包得很高大上!
感谢提示hex和innosetup!
likaci
2014-02-23 17:52:59 +08:00
要么投入.Net的怀抱吧,哈哈哈。
oio
2014-02-23 20:28:14 +08:00
@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
2014-02-23 20:47:30 +08:00
@oio 伸手地问一下,窗体设计时,是像vb那样鼠标拖控件吗?因为像web开发写窗体感觉会吐啊(就算直接bootstrap),写一个小程序不会在调整位置就用90%时间吧…
timonwong
2014-02-23 21:07:46 +08:00
@loading
有Qt Designer,编辑.ui文件。
不过控件的位置一般不是随便移动的,是根据Layout以及Spacer来布局的(不然会丢失跨平台,因为各个平台的控件大小不一样,dpi也是问题)。
我只用过pyside,加载ui文件用QUiLoader, PyQt应该类似
oio
2014-02-23 21:21:14 +08:00
@loading,GTK 的 Glade, QT 的 QT Designer,都是 WYSIWYG 的 UI 设计器。没用过 Glade,QT Designer 还可以。PySide/PyQT 都可以 on-the-fly 的载入 .ui 文件。

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

楼主可以考虑看看http://kivy.org/, 跨平台 [ IOS android win linux ] ,支持触屏, 我本来打算学这个,但是中文文档好少,英文看起来辛苦, 由于时间原因 就放弃学这个了
yangzh
2014-06-12 23:16:15 +08:00
@FarBox 做了一些研究。似乎现在 pyinstaller 比 py2exe 要好太多。请问一下你们现在(半年过去了)的开发是不是还是 python2.7+pyside+qt4+py2exe 呀?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/101428

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX