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

想给 python 脚本增加个 gui 界面,最快速的方法是什么?

  •  
  •   qweweretrt515 · 2016-09-22 13:34:51 +08:00 · 4279 次点击
    这是一个创建于 2979 天前的主题,其中的信息可能已经有所发展或是发生改变。

    工作中需要用很多小脚本,来自动化某些工作,但都是在命令行下操作,填写个参数都好麻烦,要修改传入参数,要删除,重新写,感觉有些麻烦,如果又 gui 界面,操作起来就更方便了

    但是 gui 界面写起来也挺浪费实际, 有超级快速的方法吗

    web 、 gui 界面 都可以, 主要是看快速,而且要可以和 python 交互,因为最后去执行任务的是 python 代码

    第 1 条附言  ·  2016-09-22 14:27:16 +08:00
    我是这样执行的,
    打开命令行:
    python find.py 昨天的 XX qian

    然后跟了 2 个参数, 2 个参数都是每次使用都要改变的,所以有些麻烦,而参数只能手动输入,没有办法让软件自动完成



    如果有界面的话,直接把 2 个参数复制到对应的输入框,就方便多了

    现在还要退格 ,不小心还多删除了,不太方便
    第 2 条附言  ·  2016-09-22 23:55:13 +08:00
    目前,初步的打算可能是用 flask ,没错,就是这个网页,打算用 flask-rest+angular2 作为界面,后台 python 脚本

    脚本放在 flask 的试图里吗?



    如果这样的话,那我应该可以把我那几百个其他功能的脚本全部移植上去,用 web 管理那么多脚本,想起来觉得挺帅的

    不晓得用起来会如何

    不知大家还有什么建议
    28 条回复    2016-09-23 17:18:05 +08:00
    jppxhz01
        1
    jppxhz01  
       2016-09-22 13:46:39 +08:00   ❤️ 1
    自带的 tkinter
    vnady
        2
    vnady  
       2016-09-22 13:50:50 +08:00   ❤️ 1
    web 最方便吧,可以在多台电脑上面直接访问,而不用下载安装软件。
    darkbread
        3
    darkbread  
       2016-09-22 14:14:21 +08:00   ❤️ 1
    gui 能做到命令行肯定也能做到啊,总是要改参数可能是只是自己没抽象好吧
    qweweretrt515
        4
    qweweretrt515  
    OP
       2016-09-22 14:26:10 +08:00
    @darkbread 我是这样执行的,
    打开命令行: python find.py 昨天的 XX qian
    然后跟了 2 个参数, 2 个参数都是每次使用都要改变的,所以有些麻烦,而参数只能手动输入,没有办法让软件自动完成
    ibugeek
        5
    ibugeek  
       2016-09-22 14:34:29 +08:00   ❤️ 1
    pyqt5 ,直接拖控件布局,调用 python 的功能就可以了。
    ryd994
        6
    ryd994  
       2016-09-22 14:54:01 +08:00 via Android   ❤️ 1
    input()
    darkbread
        7
    darkbread  
       2016-09-22 15:53:41 +08:00   ❤️ 1
    那直接用 shell 写啊,写完保存一下,这就是“脚本”的意义啊!
    zhanglintc
        8
    zhanglintc  
       2016-09-22 15:57:10 +08:00   ❤️ 1
    同一楼
    fengxueshangu
        9
    fengxueshangu  
       2016-09-22 16:20:41 +08:00   ❤️ 1
    pyqt + eric ? 做过几个小程序,上手也快,也简单
    qwjhb
        10
    qwjhb  
       2016-09-22 17:39:41 +08:00   ❤️ 1
    flask ?
    我觉得 UI 扔给 WEB 蛮方便的
    loading
        11
    loading  
       2016-09-22 17:52:13 +08:00 via Android   ❤️ 1
    tkinter 绝对够你用了,不要信他们用 web 。
    当然,如果是我我会用 web 因为我会。
    kxxoling
        12
    kxxoling  
       2016-09-22 19:30:20 +08:00   ❤️ 2
    imn1
        13
    imn1  
       2016-09-22 21:16:33 +08:00   ❤️ 1
    total comander/double comander 都可以执行命令前呼出对话框修改参数的
    我在上面建了一堆自写脚本命令的 toolbar 按钮……
    qweweretrt515
        14
    qweweretrt515  
    OP
       2016-09-22 23:46:18 +08:00
    @qwjhb 谢谢,最近朋友也推荐我学学这个 flask
    qweweretrt515
        15
    qweweretrt515  
    OP
       2016-09-22 23:46:41 +08:00
    @kxxoling 谢谢,这个好像不错,有点像 pyqt
    qweweretrt515
        16
    qweweretrt515  
    OP
       2016-09-22 23:47:37 +08:00
    @imn1 谢谢,你说的这个用法,我不太命白, 你的意思是,你电脑上有很多脚本,你把他们都添加到了 double comander 这软件里,当你要用的时候,就打开这个软件是吗,这个软件就相当于一个索引器 是吗
    qwjhb
        17
    qwjhb  
       2016-09-22 23:51:29 +08:00
    @qweweretrt515 毕竟 flask 上手也快,够轻,用 pyinstaller 打包一下 然后加句
    threading.Timer(1.25, lambda: webbrowser.open('http://127.0.0.1:5000/')).start()
    直接打开默认浏览器访问,很方便
    qweweretrt515
        18
    qweweretrt515  
    OP
       2016-09-22 23:52:49 +08:00
    @qwjhb 你的意思是,也可以把 flask 打包成 exe ,复制到别的电脑上运行吗
    macroideal
        19
    macroideal  
       2016-09-22 23:59:58 +08:00 via iPhone   ❤️ 1
    之前也一个类似的项目,需要给 pyPython 加一个操作的 gui ,找了很多方法都不是很完美。
    后来用 Python 启了一个 Server ,自动 open 了一个网页,搞定
    希望你能借鉴
    qwjhb
        20
    qwjhb  
       2016-09-23 00:00:12 +08:00   ❤️ 1
    @qweweretrt515 是的 毫无问题
    qweweretrt515
        21
    qweweretrt515  
    OP
       2016-09-23 00:01:15 +08:00
    @macroideal 谢谢
    qweweretrt515
        22
    qweweretrt515  
    OP
       2016-09-23 00:04:07 +08:00
    @qwjhb 哦谢谢,因为这个工具我是自己用, ,我打算就用 flask ,然后网页上一个按钮,点击下,就 post 并传递参数过去,后台的视图收到请求,根据参数,执行对应动作 ,我这脚本主要的任务是去抓取一些网页, 处理后,显示给我看,我在想,用 sqlite3 能不能满足一般 crud 的需求,或者有什么数据库在 win 上比较方便
    Taojun0714
        23
    Taojun0714  
       2016-09-23 00:05:11 +08:00   ❤️ 1
    tkinter
    qwjhb
        24
    qwjhb  
       2016-09-23 00:07:04 +08:00   ❤️ 1
    @qweweretrt515 数据库就看你数据量咯 10 万以内用 sqlite 应该没什么问题吧 我自己一个小工具就是用 sqlite 的 大概每天爬 1 万出头的网页
    如果后面检索慢了再归档或者换数据库也没关系,反正迁移很方便
    imn1
        25
    imn1  
       2016-09-23 02:30:49 +08:00   ❤️ 1
    @qweweretrt515
    当然不是,主要是涉及路径的脚本
    因为 tc 和 dc 都有内部变量参数可以把你选定的路径发给脚本 /命令作为参数,不需要自己输入
    非路径参数就相对困难了,不过我有时取巧,建一个空文件,就把文件名改为我要输入的参数, tc 可以单纯以文件名(不带路径)代入命令参数,这样就相当于手动输入了
    holmesabc
        26
    holmesabc  
       2016-09-23 09:19:54 +08:00   ❤️ 1
    可以试试 pyqt 呗。

    最近刚用 go+qml 做了个 tinypng 的 gui
    kxxoling
        27
    kxxoling  
       2016-09-23 14:05:46 +08:00
    不是 Qt , GUI 还是基于 wx 的,只不过如果你之前使用 argparse 写 CLI 程序,转换成 GUI 会非常简单。可以参考我之前写的文章: http://py.windrunner.info/console/gooey.html
    qweweretrt515
        28
    qweweretrt515  
    OP
       2016-09-23 17:18:05 +08:00
    @kxxoling 谢谢
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5420 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 54ms · UTC 09:22 · PVG 17:22 · LAX 01:22 · JFK 04:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.