请问 Python 能用来编写桌面应用么 - V2EX
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
gzxultra
V2EX    Python

请问 Python 能用来编写桌面应用么

  •  
  •   gzxultra 2015-06-20 22:05:26 +08:00 16742 次点击
    这是一个创建于 3835 天前的主题,其中的信息可能已经有所发展或是发生改变。

    刚开始学,目前看着the hard way learn python
    接下来学校有个网络课设,大概要做出一个类似QQ的通讯软件(聊天,传文件,发图片...)
    要在OS X下做出这个应用需要学哪些知识呢?
    请给出学习路线(界面,框架...)

    32 条回复    2015-07-07 07:47:47 +08:00
    undeflife
        1
    undeflife  
       2015-06-20 22:13:03 +08:00
    GUI的话可选tk、qt 或者wxWidgets
    tk比较丑 但是简单
    qt有自己的UI
    wxWidgets则是使用平台原生
    janxin
        2
    janxin  
       2015-06-20 22:16:36 +08:00
    pyqt/pyside,qt系的
    kivy,没用过....
    tk,wxWidgets都是老牌的了

    知识建议网络通讯,socket等等,图形界面编程,消息驱动等等等等...
    terax
        3
    terax  
       2015-06-20 22:16:50 +08:00
    难道不是Learn Python the Hard Way吗?
    garth
        4
    garth  
       2015-06-20 22:36:06 +08:00
    可以试试aauto
    zjqzxc
        5
    zjqzxc  
       2015-06-20 22:39:53 +08:00
    能,而且正在写。。用的tk(简单,简单到不能再简单了,最重要的是,跨平台方便)。但是,真的好丑。如果不需要特别精致的界面,tk还是一个不错的选择
    chengzhoukun
        6
    chengzhoukun  
       2015-06-20 23:25:18 +08:00 via Android
    只用过自带的Tkinter,非常方便
    squid157
        7
    squid157  
       2015-06-20 23:33:10 +08:00
    说Tk难看的,估计都不是OS X系统吧。。OS X下面Tk还比较良心。至少我是这么觉得。。
    cchange
        8
    cchange  
       2015-06-20 23:39:12 +08:00
    http://www.v2ex.com/t/84734#reply32 很巧 我也提了这个问题
    secondwtq
        9
    secondwtq  
       2015-06-21 00:36:18 +08:00
    学校会接受 OS X 的作业么?

    我其实有 Windows 桌面程序的需求,原因是要做一些小工具。现在比较火的快速开发框架,Python,node-webkit 之类,都有一个问题,就是如果在一般用户的机器上面跑,我是不用指望那边有 Runtime 的。偏偏这俩货的 Runtime 都臃肿的一比。

    OS X 倒还好些,起码预装了 Python,Ruby etc. 不过我看到这个东西,第一反应是 PyObjC... Tk 据说还可以,没用过,但是 Git 自带一个 GUI 工具,切到一个 repo 目录下面运行 gitk 就能看见了... 你可以看看那货源码,我只能表示涨姿势了,我觉得弄出这么一个工具来,这个框架还凑合。
    gzxultra
        10
    gzxultra  
    OP
       2015-06-21 07:15:37 +08:00
    @terax 咳咳咳,不要在意这个@-@
    gzxultra
        11
    gzxultra  
    OP
       2015-06-21 07:16:22 +08:00
    @undeflife @janxin 谢谢推荐,今天刷完入门书就去试试!
    fortunezhang
        12
    fortunezhang  
       2015-06-21 07:34:32 +08:00
    dropbox 就是用的python 。 安装的话建议用这个: http://stackoverflow.com/questions/29158999/py2exe-generate-single-installer-file
    jimzhong
        13
    jimzhong  
       2015-06-21 08:21:02 +08:00
    可以,用GTK写过,但是移植到windows下就变得很丑了。
    nightv2
        14
    nightv2  
       2015-06-21 09:25:12 +08:00
    @secondwtq pyinstaller感觉制作exe比较好
    Yien
        15
    Yien  
       2015-06-21 09:39:22 +08:00 via iPhone
    make
    Tink
        16
    Tink  
    PRO
       2015-06-21 10:28:25 +08:00
    QT
    Yinz
        17
    Yinz  
       2015-06-21 12:54:36 +08:00
    @nightv2 我试过用pyinstaller打包出来的去win报错“此文件的版本与正在运行的Windows版本不兼容”
    请问有头绪吗?
    AndersQ
        18
    AndersQ  
       2015-06-21 13:02:00 +08:00
    当然可以,但是Python是解释型语言,这意味着:
    1)用Python开发出的GUI桌面程序性能肯定要比原生编译出来的程序要差一些;
    2)部署的时候,你必须要带上一大堆Python运行时相关的文件。

    Python标准库中就有TKinter,但是功能比较弱,推荐有PyQt/PySide/wxPython/PyGTK等等
    em70
        19
    em70  
       2015-06-21 13:04:35 +08:00
    不要指望用一个语言打遍天下,每个领域都有垄断性的工具,都应该掌握
    jsq2627
        20
    jsq2627  
       2015-06-21 13:12:36 +08:00
    如果仅仅是为了完成作业,建议学习用 ObjC (Cocoa)/C++ (Qt) 写原生应用,不会很复杂。
    HowardMei
        21
    HowardMei  
       2015-06-21 14:06:32 +08:00
    要想漂亮,可以考虑用enaml (没到1.0版,文档不够新),支持PyQT/PySide和CSS定义控件
    http://nucleic.github.io/enaml/docs/examples/ex_gradient_push_button.html
    rundis
        22
    rundis  
       2015-06-21 14:17:32 +08:00
    要做桌面程序的话,直接用visual c#,强行一波拖拉无脑做出gui
    wshcdr
        23
    wshcdr  
       2015-06-21 15:18:17 +08:00
    用wxPython吧
    wolong
        24
    wolong  
       2015-06-21 15:39:20 +08:00
    桌面程序还是C#方便快捷。
    ivenvd
        25
    ivenvd  
       2015-06-21 18:42:18 +08:00
    呃,大部分 Linux 桌面应用(尤其 GNOME)都是 Python 写的吧?
    linux40
        26
    linux40  
       2015-06-22 08:21:19 +08:00 via Android
    没叫用图形啊
    fxbird
        27
    fxbird  
       2015-06-22 09:37:27 +08:00
    要做桌面还是用.net吧,还是那个方便,我曾经用java swing开发过桌面程序,从OO的角度说,它很完美,但从实用的角度讲,简直是渣,开发起来那叫一个累啊
    wizardforcel
        28
    wizardforcel  
       2015-06-22 19:38:41 +08:00 via Android
    tkinter不仅丑 设置长宽的时候也别扭。
    staticor
        29
    staticor  
       2015-06-22 23:51:07 +08:00
    我是无意在quora中看到一个问题中, 回想起些许与此问题有关, 所以转link http://www.quora.com/Is-it-true-that-Python-is-a-dying-language
    参考下Adam的回答.
    WispZhan
        30
    WispZhan  
       2015-06-23 11:04:29 +08:00
    我没有用python开发过桌面应用的经验。个人感觉,可以是可以,但是总感觉开发效率不如其他平台。

    windows下开发效率明显低于wpf,linux下直接Qt感觉更快。甚至于半残的javaFX应该比它的效率高。
    Clarencep
        31
    Clarencep  
       2015-06-23 17:53:44 +08:00
    歪个楼,这么喜欢用python,不如搞个类似[WebQQ][http://web.qq.com/]的web应用,直接用浏览器访问……这也是QQ
    guiqiqi
        32
    guiqiqi  
       2015-07-07 07:47:47 +08:00 via Android
    @wizardforcel ttk就能好些吧
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2767 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 08:14 PVG 16:14 LAX 00:14 JFK 03:14
    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