用 Python 3 + PyQt5 撸了一个播放器 - 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
cosven
V2EX    Python

用 Python 3 + PyQt5 撸了一个播放器

  •  8
     
  •   cosven
    cosven 2018-08-02 19:24:52 +08:00 15568 次点击
    这是一个创建于 2631 天前的主题,其中的信息可能已经有所发展或是发生改变。

    image

    特性

    使用方法

    # Ubuntu 用户可以依次执行以下命令进行安装 sudo apt-get install python3-pyqt5 # 安装 Python PyQt5 依赖包 sudo apt-get install libmpv1 # 安装 libmpv1 系统依赖 pip3 install 'feeluown>=2.0' --user -i https://pypi.org/simple/ ## 为 feeluown 生成图标( Linux 用户) feeluown-genicon # 生成图标,点击桌面图标就可以运行 feeluown # 也可以在命令行中运行 

    更多效果图和演示视频: https://github.com/cosven/FeelUOwn/wiki/Gallery

    另外一个细节更多的分享帖: t/476376

    last but not least

    第 1 条附言    2018-08-03 01:11:34 +08:00

    之前 Linux 上使用的主题和截图中有一点出入,大家好像更喜欢截图这个主题。

    于是暂时发了一个 2.0.1 的版本,在 Linux 上也使用截图中的主题。 之后会再仔细考虑颜值问题,应该会加一个主题切换的功能。

    pip3 install 'feeluown>=2.0.1' --upgrade --user 这样就可以更新到最新版

    第 2 条附言    2018-08-03 09:11:47 +08:00

    非常希望对这个项目感兴趣的新手或者老司机能一起来设计开发这个项目 ~

    在发布之前,我也尝试了一些方法能让大家快速加入和了解项目

    • 一方面进行了大量的文档补全和代码整理优化工作,让新人也能够快速融入开发
    • 另一方面建立一个 Telegram 群聊,方便大家实时沟通,互相学习(主要是讨论项目及 Python 相关的一些认识)
    89 条回复    2018-08-06 13:45:23 +08:00
    pabupa
        1
    pabupa  
       2018-08-02 19:36:40 +08:00 via Android
    cosven
        2
    cosven  
    OP
       2018-08-02 21:21:03 +08:00   1
    收集了一波收藏,但是却没有评论,心痛。
    早知道应该把标题改成:Python 3 是世界上最好的语言...
    lfzyx
        3
    lfzyx  
       2018-08-02 21:25:20 +08:00
    不错,然鹅我还是用 spotify 好了
    ToT
        4
    ToT  
       2018-08-02 21:31:46 +08:00
    界面很舒服,楼主是自己设计的么?还是 GNOME 的默认样子呀 itunes 的感觉。
    sadddhu
        5
    sadddhu  
       2018-08-02 21:32:36 +08:00
    不错哟, 学习了
    kench
        6
    kench  
       2018-08-02 21:35:19 +08:00 via Android
    赞一个
    congmingB
        7
    congmingB  
       2018-08-02 21:36:15 +08:00
    赞,支持一波。
    最近正在学 PyQt5, 刚学了一些基本的布局、部件等,看的是一些基础的文档,请问楼主进一步界面设计的学习路线?
    先学习一波楼主源码~
    GG668v26Fd55CP5W
        8
    GG668v26Fd55CP5W  
       2018-08-02 21:38:22 +08:00 via iPhone
    好像 itunes 哦
    cosven
        9
    cosven  
    OP
       2018-08-02 21:40:43 +08:00
    @ToT 恩,是自己瞎设计的。这个「设计」诞生的背景是当时我觉得 Qt 组件原生在 macOS 下太难看了,于是瞎设计了这个主题,当时主要参考了 itunes 的结构。

    个人感受:把布局给设计好了,整体就会不错,颜色或者图标等一些东西其次。

    GNOME 下也可以长这样子,这相当于是这个播放器的一个主题。
    YOOHUU
        10
    YOOHUU  
       2018-08-02 21:45:28 +08:00
    很赞的感觉...不过有 fb 了...
    cosven
        11
    cosven  
    OP
       2018-08-02 21:46:14 +08:00   1
    @congmingB
    我自己以前学习 PyQt5 的思路主要是实践 + 看文档。

    个人感觉大概的思路是:
    1. 看基础教程和一些例子,了解 PyQt5 能干什么
    2. 然后自己写一个 Hello world 例子
    3. 然后就可以写一些有实际作用的项目了 -> 这时主要是靠搜索 + 模仿教程
    4. 之后基本就可以看着文档写自己想写的东西了;
    这时也可以参加一些其他开源项目,比如这个,哈哈哈
    KaoN
        12
    KaoN  
       2018-08-02 21:48:03 +08:00 via Android
    pyside2 和 pyqt5 比较咋样。。。
    cosven
        13
    cosven  
    OP
       2018-08-02 21:48:35 +08:00
    @congmingB
    这是当时学习的一些笔记,比较很真实记录当时的学习过程。(内容在现在可能没有很大参考价值,思路可能会有)
    cosven
        14
    cosven  
    OP
       2018-08-02 21:49:15 +08:00
    @lfzyx 以前用 spotify 的时候,感觉国内的音乐不是很多?(不确定是不是姿势不太对)
    cosven
        15
    cosven  
    OP
       2018-08-02 21:50:48 +08:00
    cosven
        16
    cosven  
    OP
       2018-08-02 21:52:18 +08:00
    @DAPTX4869 fb 是什么呀?之前好像没有听说过,还是说这个简写我没有听说过
    lfzyx
        17
    lfzyx  
       2018-08-02 21:52:43 +08:00
    @cosven 港区就很多
    cosven
        18
    cosven  
    OP
       2018-08-02 21:57:28 +08:00 via iPhone
    @lfzyx 哦,这样纸...
    TOUJOURSER
        19
    TOUJOURSER  
       2018-08-02 21:58:48 +08:00
    咋一看以为是 itunes
    congmingB
        20
    congmingB  
       2018-08-02 22:02:18 +08:00
    @cosven 待我拜读学习一哈。
    cosven
        21
    cosven  
    OP
       2018-08-02 22:02:22 +08:00 via iPhone
    @KaoN 嗯,记忆中,pyside 相比于 pyqt 的好处是它可以商用?
    pyside 中间黄了一段时间,最近又重新被捡起来了,在开发和功能方面,暂时没有看到 pyside 有什么明显优势。
    我也没太关注 pyside 的发展,呜呜呜
    cosven
        22
    cosven  
    OP
       2018-08-02 22:03:00 +08:00 via iPhone
    @congmingB 嗯,配合文档食用更佳,哈哈
    cosven
        23
    cosven  
    OP
       2018-08-02 22:03:43 +08:00 via iPhone
    @TOUJOURSER 看来确实和 itunes 太像了...大家都这么说
    cosven
        24
    cosven  
    OP
       2018-08-02 22:45:25 +08:00
    反思了一下,这个配色和 itunes 的太像了。布局本来也是从 itunes 那里模仿过来的。
    e9e499d78f
        25
    e9e499d78f  
       2018-08-02 22:56:31 +08:00
    楼主做得不错
    cosven
        26
    cosven  
    OP
       2018-08-02 23:08:28 +08:00 via iPhone
    @e9e499d78f 来来来,一起搞!
    580a388da131
        27
    580a388da131  
       2018-08-02 23:08:29 +08:00
    点击可登陆,点了半天没发现可以登录,登录窗口跑后面去了,最后发现,我点成双击了。
    播放列表上面的图片太大了,右侧空劳劳的。
    音乐播放器不都是这种界面了,没觉得跟 iTunes 多像啊。
    cosven
        28
    cosven  
    OP
       2018-08-02 23:12:38 +08:00 via iPhone
    @580a388da131
    猜测你是在 linux 上使用的,截图是我给 macOS 定制的一个主题。
    在 linux 上目前没有使用这个主题,之后会给它加一个主题切换的功能。

    右边空唠唠的话,应该是播放列表没有描述,之后我也想想怎么优化这个 case
    cyrbuzz
        29
    cyrbuzz  
       2018-08-02 23:13:45 +08:00   4
    3 年前,看到楼主在 OsChina 的帖子,自己仿着楼主撸了个:
    https://github.com/HuberTRoy/NetEase

    1 年前,偶然翻到楼主在 Github 上的仓库,心生羡慕,又做了一个全新版本:
    https://github.com/HuberTRoy/MusicBox

    ai...最初的摸索阶段,踩在了巨人的肩膀上。感谢~。
    580a388da131
        30
    580a388da131  
       2018-08-02 23:13:47 +08:00
    啊,才注意到我的播放界面和你的基本不一样。
    e9e499d78f
        31
    e9e499d78f  
       2018-08-02 23:15:39 +08:00
    @cosven 以前搞过 pyqt,好久没碰了……
    cosven
        32
    cosven  
    OP
       2018-08-02 23:22:29 +08:00 via iPhone
    @580a388da131 嗯,截图是我给 macOS 定制的一个主题,之前有朋友跟我说 你软件 在 mac 好难看,于是当时折腾了一下。

    我稍后加个切换主题的功能 ()

    话说你这个是什么桌面呀?我自己只试过 kde plasma 和 gnome
    cosven
        33
    cosven  
    OP
       2018-08-02 23:22:54 +08:00 via iPhone
    @e9e499d78f 哈哈哈,可能工作上很少会用到把
    cosven
        34
    cosven  
    OP
       2018-08-02 23:24:52 +08:00 via iPhone
    @cyrbuzz 哇,cool
    580a388da131
        35
    580a388da131  
       2018-08-02 23:29:16 +08:00
    @cosven 这是 deepin 家里的系统懒得折腾
    cosven
        36
    cosven  
    OP
       2018-08-02 23:30:36 +08:00
    @cyrbuzz 感觉你做的比我的完整很多,棒!
    zkliu6
        37
    zkliu6  
       2018-08-02 23:30:50 +08:00 via Android
    要是能支持 Apple Music 就好了,虽然 itunes 自己就支持但它真的太难用了
    omph
        38
    omph  
       2018-08-02 23:39:51 +08:00
    记得原来是高仿网易云音乐的,还蛮好看,现在怎么回到原始状态了?
    能不能上 css 调调色
    cosven
        39
    cosven  
    OP
       2018-08-02 23:44:36 +08:00
    @omph 可以上调色,其实上面的额截图就是一个例子。之前没有时间弄太多主题,主要精力是在重构,调整代码结构,让新人也能参与开发 ~

    感觉大家对主题的需求还挺多,我这两天抽时间搞一搞
    cosven
        40
    cosven  
    OP
       2018-08-02 23:50:17 +08:00
    @zkliu6 Apple Music,这个我倒是没有考虑过,我记一下,看看有没有可能实现。
    cosven
        41
    cosven  
    OP
       2018-08-02 23:51:42 +08:00
    @580a388da131 哦,这样子,难怪感觉这些图标貌似没有见过。
    Tink
        42
    Tink  
    PRO
       2018-08-02 23:53:34 +08:00 via iPhone
    666
    cosven
        43
    cosven  
    OP
       2018-08-03 00:02:00 +08:00
    @Tink
    > python3 -c "import base64; print(base64.b64decode(b'dGluay5pbQ=='))"
    tink.im
    cosven
        44
    cosven  
    OP
       2018-08-03 00:02:14 +08:00
    @Tink 膜拜大佬
    omph
        45
    omph  
       2018-08-03 00:20:13 +08:00
    音乐是优雅的,如果播放器很丑,那简直不能忍
    cosven
        46
    cosven  
    OP
       2018-08-03 00:53:10 +08:00
    鉴于大家都说长得不好看,于是 Linux 下默认主题长得不好看,于是发了个新版本 2.0.1

    大家有兴趣可以升级或者安装最新版 cc @omph @580a388da131
    cosven
        47
    cosven  
    OP
       2018-08-03 00:58:05 +08:00
    > Linux 下默认主题长得不好看,于是发了个新版本 2.0.1

    在 2.0.1 中,Linux 下也默认使用 macOS 的主题,也就是长得和上面截图会很像。
    iPhone8
        48
    iPhone8  
       2018-08-03 02:22:05 +08:00
    好厉害,多长时间搞定的?
    chiu
        49
    chiu  
       2018-08-03 06:59:24 +08:00 via Android
    请问,如果想在没有 python 环境或 pyqt 环境的电脑下运行,应该怎么打包应用?
    xiangchen2011
        50
    xiangchen2011  
       2018-08-03 07:47:25 +08:00
    可以可以,很强势
    cosven
        51
    cosven  
    OP
       2018-08-03 08:01:01 +08:00 via iPhone
    @iPhone8 分阶段的,三年前就开始做了。不过后来工作之后,就没啥时间开发了,最近集中的改进了一下 ~
    1daydayde
        52
    1daydayde  
       2018-08-03 08:05:03 +08:00 via iPhone
    赞一个
    cosven
        53
    cosven  
    OP
       2018-08-03 08:08:10 +08:00 via iPhone
    @chiu 你是说 windows 吗?

    如果是 linux 和 macOS 的话,可以先安装 python 及其相关依赖,方法也很简单。当然以后精力或者有更多朋友一起开发的话,也可以给这两个平台打包。

    如果是 windows 的话,目前还有点麻烦,个人没有 windows 系统,不太方便之后进行打包和测试。不过大家需求多的话,我近期也会想办法搞一下这个事情,昨天也有朋友说可以帮忙先试试 windows 下打包。
    NullPoint
        54
    NullPoint  
       2018-08-03 08:08:59 +08:00 via Android
    ( ω )
    z0z
        55
    z0z  
       2018-08-03 08:16:00 +08:00
    向楼主学习。
    表达一下我的敬意。
    chuanzhangACE
        56
    chuanzhangACE  
       2018-08-03 08:21:27 +08:00 via Android
    厉害厉害,学习一波
    cosven
        57
    cosven  
    OP
       2018-08-03 08:27:48 +08:00 via iPhone
    @iPhone8 其实这东西也不是很复杂,有兴趣可以一起来玩呀。
    KaoN
        58
    KaoN  
       2018-08-03 08:32:02 +08:00
    @cosven pyside2 最近官方接盘了。。所以我就关注了起来。。
    rookiebulls
        59
    rookiebulls  
       2018-08-03 08:34:19 +08:00 via iPhone
    打包后大概有多大呢
    wisej
        60
    wisej  
       2018-08-03 08:41:05 +08:00
    按步骤安装完后(没有报错提示),bash 里输入 feeluown 提示未找到命令.... 系统是 Ubuntu 18.04LTS
    cosven
        61
    cosven  
    OP
       2018-08-03 08:46:27 +08:00   1
    cosven
        62
    cosven  
    OP
       2018-08-03 08:48:51 +08:00
    @rookiebulls 打成什么包之后?没有太明白

    如果是打成 Linux deb 包的话,应该小于 1MiB ;如果是打成 Windows 包的话,目前还没测试过,根据三年前经验估计得有个 80 MiB 左右。
    leavic
        63
    leavic  
       2018-08-03 09:01:35 +08:00
    这是我见过最漂亮的 qt 界面
    cyrbuzz
        64
    cyrbuzz  
       2018-08-03 09:28:11 +08:00
    @cosven
    :kissing_heart:
    qdpoboy
        65
    qdpoboy  
       2018-08-03 09:33:22 +08:00
    厉害了,手动点赞
    cosven
        66
    cosven  
    OP
       2018-08-03 09:47:36 +08:00
    @cyrbuzz :tada:
    cosven
        67
    cosven  
    OP
       2018-08-03 09:48:19 +08:00
    @leavic 谢谢夸奖
    SbloodyS
        68
    SbloodyS  
       2018-08-03 09:51:36 +08:00
    界面挺舒服的~
    yprisoner
        69
    yprisoner  
       2018-08-03 10:21:19 +08:00 via Android
    不错不错,收藏一啵^ 3 ^
    janxin
        70
    janxin  
       2018-08-03 10:26:18 +08:00
    滋瓷
    Twinkle
        71
    Twinkle  
       2018-08-03 10:41:11 +08:00
    文文
    cosven
        72
    cosven  
    OP
       2018-08-03 11:06:49 +08:00
    JackieMe
        73
    JackieMe  
       2018-08-03 11:16:39 +08:00
    Debian sid + XFCE4 装上太丑了,暂时还是先 star 着吧
    cosven
        74
    cosven  
    OP
       2018-08-03 11:18:38 +08:00 via iPhone
    @JackieMe ( )羞 我待会自己试一下,看看能不能改进下
    cosven
        75
    cosven  
    OP
       2018-08-03 11:42:17 +08:00
    @JackieMe
    https://github.com/cosven/FeelUOwn/wiki/Gallery#xfce4-%E6%95%88%E6%9E%9C%E9%A2%84%E8%A7%88

    我试了下,还行吧。你可以用上面写的一条命令,更新到最新版试试 ~ 应该会好看很多 ~
    JackieMe
        76
    JackieMe  
       2018-08-03 13:06:54 +08:00 via Android
    @cosven 安装路径也很奇怪,直接在 ~/.local/bin 下干出一个目录自己用,感觉很霸道
    YOOHUU
        77
    YOOHUU  
       2018-08-03 14:14:10 +08:00
    @cosven foobar2000,等级低回复不了图片...
    cosven
        78
    cosven  
    OP
       2018-08-03 15:18:35 +08:00
    @JackieMe 这个是 pip3 自动安装的
    ~/.local 其实是个标准路径的:
    https://www.freedesktop.org/software/systemd/man/file-hierarchy.html#Home%20Directory
    cosven
        79
    cosven  
    OP
       2018-08-03 16:17:45 +08:00 via iPhone
    @DAPTX4869 看了下 foobar,感觉这东西还挺厉害,挺稳定的样子。
    JackieMe
        80
    JackieMe  
       2018-08-03 18:55:45 +08:00 via Android
    @cosven 原来是这样啊,不好意思不好意思,那是我的锅
    ChristopherCray
        81
    ChristopherCray  
       2018-08-03 19:47:47 +08:00
    我觉得下面部分不好看
    cosven
        82
    cosven  
    OP
       2018-08-03 20:38:51 +08:00 via iPhone
    @ChristopherCray 下面那个,感觉左边再宽一点会好看很多
    poorcai
        83
    poorcai  
       2018-08-03 21:20:55 +08:00 via iPhone
    大佬
    cosven
        84
    cosven  
    OP
       2018-08-03 21:32:02 +08:00 via iPhone
    @poorcai ( )
    Rorysky
        85
    Rorysky  
       2018-08-03 22:04:39 +08:00
    界面不错,不过 这个符号用得太多了;

    有没有插件系统?
    cosven
        86
    cosven  
    OP
       2018-08-03 22:17:48 +08:00   1
    @Rorysky 有的,不过现在还写相关文档
    https://github.com/cosven/feeluown-mpris2-plugin

    这是一个例子,这里是插件的加载逻辑,非常简单
    https://github.com/cosven/FeelUOwn/blob/master/feeluown/plugin.py
    cgwh
        87
    cgwh  
       2018-08-04 06:32:34 +08:00 via Android
    赞一个,马克一下
    tanglijun
        88
    tanglijun  
       2018-08-04 12:00:49 +08:00
    yannnli
    &nbs;   89
    yannnli  
       2018-08-06 13:45:23 +08:00
    666
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     937 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 32ms UTC 19:20 PVG 03:20 LAX 12:20 JFK 15:20
    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