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

如果 Python 硬要写桌面应用,该如何是好?

  •  
  •   slysly759 · 2016-10-18 11:16:30 +08:00 · 11090 次点击
    这是一个创建于 2960 天前的主题,其中的信息可能已经有所发展或是发生改变。

    具体是介样滴:

    原先 PM 将一个用的人少的运维管理页面( web application ) JAVA web 给我用 Python 做,期待做成小工具。后来我想给客户的东西终不能没有界面吧,就用 bat 撸了一个。

    客户:握草,这界面?!还墨绿色?

    :恩,目前是这样

    客户:这滚动的这么像黑客一样?!!

    :。。。

    后来 PM 和我说 你快去弄一个 GUI 。。。

    然后我拿出了 pyqt 用了一个 qt designer 一天花了一个雏形,然后 PM 直接说:丑哭了,你还是把那个 bat 界面改改吧。

    虽然后来结局还蛮好,由于程序功能还简单 没什么逻辑复杂度, bat 界面加上了颜色对比 进度条 和容错等一些优化 客户勉强能够接受。

    但是还是想问问 在这种情况下 咋去弄一个 GUI 最快最省事捏

    备注: 1. 最好能够调用 Python 脚本 2. 学习曲线不要太陡峭 目前就非科班自学水平

    客户:我看人家 VB 就做界面满快的,来来来 你看看这个 QQ 界面不对 是飞鸽界面。。。

    30 条回复    2016-10-19 22:00:14 +08:00
    Geoion
        1
    Geoion  
       2016-10-18 11:25:51 +08:00
    试试 node.js ?
    izoabr
        2
    izoabr  
       2016-10-18 11:26:32 +08:00
    PyQT 很快呀,而且可以 QML ,里面跑 Script ,但我没用过。

    我用 QT 做界面,按钮一定记得设置下图标,看起来就高端一些了。
    kindjeff
        3
    kindjeff  
       2016-10-18 11:26:56 +08:00
    web
    jswh
        4
    jswh  
       2016-10-18 11:35:55 +08:00
    electron
    em70
        5
    em70  
       2016-10-18 11:37:02 +08:00
    应该完全杜绝这种临时抱佛脚的情况,既然问题已经解决,现在有时间就系统学一个做 GUI 的技能,建议 WEB
    SuperMild
        6
    SuperMild  
       2016-10-18 11:51:08 +08:00
    上 electron 吧,这东西的神奇之处(方便之处)在于,你用 html, css, JS 来写界面,其中 JS 的部分,既可以直接操作 dom ,同时也可以直接操作后端(比如直接操作文件、操作数据库),不用配置本地服务器不用开端口,可方便地做成可执行文件扔给别的机器(包括 win 和 mac )。简单的界面用 html 来写多么爽啊!
    jswh
        7
    jswh  
       2016-10-18 11:53:54 +08:00
    @SuperMild 不过,说实话,第一次用来操作数据库、文件之类的,一定会被异步和回调搞晕的,然后还可能要在 promise 上再晕一次。尤其是对于只习惯 python php c 之类的语言的人。
    jswh
        8
    jswh  
       2016-10-18 11:54:49 +08:00
    其实我想到了一个超好的东西。易语言,绝对的学习曲线扁平
    guyskk
        9
    guyskk  
       2016-10-18 12:10:01 +08:00 via Android
    用 bootstrap 做网页版,提供一个命令行工具用来开启服务监听端口。
    chinuno
        10
    chinuno  
       2016-10-18 12:12:39 +08:00 via Android
    用 ironpython 做,直接 vs 里面拉界面应该比较适合
    beilun
        11
    beilun  
       2016-10-18 12:13:21 +08:00
    delphi 啦
    jimzhong
        12
    jimzhong  
       2016-10-18 12:32:59 +08:00
    如果界面比较简单可以用 tkinter
    owlsec
        13
    owlsec  
       2016-10-18 13:29:54 +08:00
    拿.net 写。。。。。
    slysly759
        14
    slysly759  
    OP
       2016-10-18 13:39:55 +08:00
    @izoabr 如果点击按钮 触发执行某一个脚本 能把执行结果返回到 GUI 看见么
    lrh3321
        15
    lrh3321  
       2016-10-18 13:47:06 +08:00
    拿.net 写+1

    重定向下 脚本进程的输入、输出

    或者把原先脚本的工作也给一起做了
    kinghui
        16
    kinghui  
       2016-10-18 14:11:09 +08:00
    PyQt + QML, 想好看就要找专业的帮忙出几张图.
    icedx
        17
    icedx  
       2016-10-18 14:17:40 +08:00
    推荐 C#
    不过貌似不能保证源码不泄露
    C# 不能加普通的壳, 目前的专用加密方案都可以破解

    其实 Python 更容易泄露

    最好的就是 QT 可惜学习周期太长 曲线比较陡峭
    haihan
        18
    haihan  
       2016-10-18 15:12:34 +08:00
    不要造轮子,试试 github : https://github.com/chriskiehl/Gooey
    zhouzhe8013
        19
    zhouzhe8013  
       2016-10-18 15:20:35 +08:00
    我觉得 win 下的 GUI 还是 C#吧,要么做成 web 的.
    verydxz
        20
    verydxz  
       2016-10-18 16:00:25 +08:00
    zhangbohun
        21
    zhangbohun  
       2016-10-18 16:08:25 +08:00 via Android
    快手 aauto ,现在改了个新名太难拼我忘了(-.-)
    应该是最符合你的条件的
    语法不难,标准库挺丰富,可以调用 Python2 和 3 , ide 有类似 vb 拖界面的功能
    izoabr
        22
    izoabr  
       2016-10-18 16:41:44 +08:00
    @slysly759 那就是系统调用层面的事了, os 还是 sys 里面的一个 exec 方法调用的吧
    murmur
        23
    murmur  
       2016-10-18 16:44:55 +08:00
    @icedx 没有不能破解的应用,只看有没有强力的律师团队,比如像 cubase 这样,元素版你随便破解默认没看见,专业版大家都当不能破解请你付费。。。
    越热门的应用被破解的可能性越大,何况这些还都是 c++呢,所以还是想法把一部分逻辑扔到服务器上吧...
    wodemyworld
        24
    wodemyworld  
       2016-10-18 17:14:58 +08:00
    @owlsec .NET +2 , C# winform 最多 2 小时解决战斗
    wodemyworld
        25
    wodemyworld  
       2016-10-18 17:15:44 +08:00
    更何况.NET 还能用 IronPython 调用 winform 。妥妥的
    slysly759
        26
    slysly759  
    OP
       2016-10-18 18:13:53 +08:00
    @Geoion 我觉得吧 当老板看到自己 JAVA 的项目被人另立山头弄了一个 Python web 估计想砍死我,还不如放在信息一体化里面呢。。。心疼老板一分钟
    slysly759
        27
    slysly759  
    OP
       2016-10-18 22:29:00 +08:00
    @jswh 0.0 感谢避坑
    Jackeriss
        28
    Jackeriss  
       2016-10-19 09:44:58 +08:00   ❤️ 1
    Qt 能做的 PyQt 几乎都能做,很多著名软件都是 使用 Qt 制作的,如战网客户端、 Autodesk Maya 、 Google Earth 、 Opera 、 Skype 、 VirtualBox 、咪咕音乐、 WPS Office 还有极品飞车等等,可以说是一个相当完善的图形用户界面开发库。如果你界面丑说明你不会自定义 QSS 样式,这个跟 CSS2 很像。开发速度慢只能说是经验问题,做第一个软件可能稍微慢点,后面会发现基本的结构都差不多,直接修改就能做出更多的。而且 PyQt 是跨平台的,还可以直接通过 py2exe 打包成可执行文件。
    sobigfish
        29
    sobigfish  
       2016-10-19 13:28:39 +08:00 via iPhone
    slysly759
        30
    slysly759  
    OP
       2016-10-19 22:00:14 +08:00
    @Jackeriss thx~
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3202 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 13:30 · PVG 21:30 · LAX 05:30 · JFK 08:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.