介绍

本文是对之前的音乐播放器的一些改进和功能实现。只写了有变化的部分,具体部分请看上一篇博客。
[利用PyQt5和QSS制作本地音乐播放器(初稿)](https://blog.csdn.net/weixin_44343083/article/details/114256446)

变化展示

主界面上增加了查找歌单内歌曲的功能和点击歌单列表表头对歌单内歌曲进行排序等功能。

增加了右键重命名歌单和删除歌单功能

增加了歌曲列表右键菜单功能

增加了任务栏缩略图的功能

增加了系统任务栏右键菜单功能

变化部分功能实现思路和代码

  1. 歌曲查找功能
    即在搜索框内输入文字,便可以触发搜索函数进行歌单搜索;搜索框内无文字时退出搜索,并恢复歌单。
 # 控件设置和事件触发self.song_search = QtWidgets.QLineEdit()self.song_search.setPlaceholderText('搜索歌单音乐')self.search_btn = QtWidgets.QPushButton(qtawesome.icon('fa.search'),'')self.search_btn.setEnabled(False)self.song_search.textChanged.connect(self.search_song)def search_song(self, a): # 函数实现self.songlist_table.setSortingEnabled(False)if a:items = self.songlist_table.findItems(a, Qt.MatchContains)nRow = int(self.songlist_table.rowCount())bRowHidden = Truefor i in range(nRow):bRowHidden = Truefor item in items:if item == None:continueif self.songlist_table.row(item)==i:bRowHidden = Falsebreakself.songlist_table.setRowHidden(i,bRowHidden)else:nRow = int(self.songlist_table.rowCount())for i in range(nRow):self.songlist_table.setRowHidden(i, False)self.songlist_table.setSortingEnabled(True)self.songlist_table.sortByColumn(0, Qt.AscendingOrder)
  1. 歌单排序功能
    即点击表头进行表格排序。
    注: 每次对表格内数据进行更新时需要先将下面这个函数数值设为false,否则表格数据显示会出现错误。(不知道为什么,反正就是这样)
self.songlist_table.setSortingEnabled(True)  #这里设置为true即可实现
self.songlist_table.sortByColumn(0, Qt.AscendingOrder)
  1. 右键菜单
    #    事件触发self.left_list.setContextMenuPolicy(Qt.CustomContextMenu)self.left_list.customContextMenuRequested.connect(self.songlist_menu)def songlist_menu(self, point):   #   函数实现menu = QtWidgets.QMenu()action = menu.addAction('重命名')action.triggered.connect(self.Rename_list)action = menu.addAction('删除')action.triggered.connect(self.Delete_list)if self.left_list.currentItem() and self.left_list.itemAt(point) is not None:menu.exec_(QCursor.pos())
  1. 缩略图任务栏
    def setTaskbar(self):self.taskbar = QWinThumbnailToolBar(self)self.taskbar.setWindow(self.windowHandle())self.taskbar_prev = QWinThumbnailToolButton()self.taskbar_prev.setIcon(qtawesome.icon('fa.step-backward', color='#F76677'))self.taskbar_prev.setToolTip('上一首')self.taskbar_prev.setDismissOnClick(True)self.taskbar_prev.clicked.connect(self.prev_song)self.taskbar_play = QWinThumbnailToolButton()self.taskbar_play.setIcon(qtawesome.icon('fa.play', color='#F76677'))self.taskbar_play.setToolTip('播放')self.taskbar_play.setDismissOnClick(True)self.taskbar_play.clicked.connect(self.play_song)self.taskbar_next = QWinThumbnailToolButton()self.taskbar_next.setIcon(qtawesome.icon('fa.step-forward', color='#F76677'))self.taskbar_next.setToolTip('下一首')self.taskbar_next.setDismissOnClick(True)self.taskbar_next.clicked.connect(self.next_song)self.taskbar.addButton(self.taskbar_prev)self.taskbar.addButton(self.taskbar_play)self.taskbar.addButton(self.taskbar_next)
  1. 系统任务栏
    def setQSystemTray(self):menu=QtWidgets.QMenu()action = menu.addAction('上一首')action.setIcon(qtawesome.icon('fa.step-backward', color='#363636'))action.triggered.connect(self.prev_song)action = menu.addAction('下一首')action.setIcon(qtawesome.icon('fa.step-forward', color='#363636'))action.triggered.connect(self.next_song)action = menu.addAction('退出')action.setIcon(qtawesome.icon('fa.sign-out', color='#363636'))action.triggered.connect(self.close)menu.setStyleSheet('''QMenu{background-color:rgba(250,250,252);font-size:18px;color:rgb(66,66,66);border-radius:5px;width:200px;}QMenu::item{width:198px;height:30px;background-color:rgb(250,250,252);border-radius:3px;padding: 0px 0px 0px 20px;margin:3px 3px 3px 3px;}QMenu::item:selected{background-color:rgb(237,237,239);}''')self.trayIcon = QtWidgets.QSystemTrayIcon()self.trayIcon.setContextMenu(menu)self.trayIcon.setIcon(QIcon(':/ICON/xiao.ico'))self.trayIcon.show()

结】

感觉没改多少东西,就这点,或许有bug。

利用PyQt5制作本地音乐播放器相关推荐

  1. 利用PyQt5和QSS制作本地音乐播放器(初稿)

    制作缘由 本来我是通过活动白嫖了某云音乐的黑胶VIP的,当时我下了很多VIP才能听整首的歌.但是VIP过期后,这音乐就播放不了了,一方面是它VIP歌曲存储为.ncm文件,另一方面是我将这ncm文件解码 ...

  2. python 本地音乐播放器制作过程

    制作这个播放器的目的是为了将下载下来的mp3文件进行随机或是顺序的播放.选择需要播放的音乐的路径,选择播放方式,经过测试可以完美的播放本地音乐. [阅读全文] 在开始之前介绍一个免费下载mp3音乐的网 ...

  3. 基于Python实现本地音乐播放器的制作

    制作这个播放器的目的是为了将下载下来的mp3文件进行随机或是顺序的播放.选择需要播放的音乐的路径,选择播放方式,经过测试可以完美的播放本地音乐. 在开始之前介绍一个免费下载mp3音乐的网站,有需要的可 ...

  4. C#制作简单的本地音乐播放器(二)—— 显示歌词

    此篇文章主要补充 C#制作简单的本地音乐播放器(一) 中的"歌词显示"部分的内容. 页面设计部分 相关内容 本程序使用的歌词文件为lrc格式,lrc是英文lyric(歌词)的缩写, ...

  5. 我的音乐(Musicoco)- 本地音乐播放器开发总结

    开源一个功能相对齐全的本地音乐播放器 简述 从五月末就开始利用空余时间开发这款 app ,不知不觉三个月过去了. App 名称:我的音乐,我给取了个别名:Musicoco. Android 手机本地音 ...

  6. 本地音乐播放器(JavaFX-SoPlayer)

    大二学java一个多月了,正好2.14情人节想做的点什么东西,于是心血来潮写了个粉嫩粉嫩的播放器布局(这个也放github里面了),后来一发不可收拾不断改进,前后近三个星期遂步进新世界. 基于Java ...

  7. Android 编程案例-本地音乐播放器源码及使用注意事项

    说一下代码在用的时候注意事项以及在运行的时候可能遇到的问题: 首先代码可以在创建相应文件后直接复制,这个案例用到了RecyclerView,所以需要先添加依赖.添加下面两个: implementati ...

  8. python 播放本地音乐_实战项目—python实现本地音乐播放器

    随着网络的发展,我们已经很少将音乐下载到本地,而是直接在线听歌,方便而又直接.也许你用的音乐播放器是这个 也许是这个 这都不是重点,今天我们要用python自己打造一款音乐播放器. 具体思路 使用py ...

  9. PyQt5实现简易音乐播放器

    PyQt5实现简易音乐播放器 环境 vscode python 3.10.0 PyQt5 5.15.4 功能目标 能够读取本地的音乐文件,并实现播放的开关.曲目的切换和音量的加减 具体实现 新建一个文 ...

最新文章

  1. XScroll.js更新:加入交错切换效果,附思路
  2. struts+hibernate 分页
  3. 如何正确使用穿线管 穿线管布局解析
  4. oracle 安装 挂载磁盘组_ora-15077,ASM磁盘组不能挂载
  5. android动态居中布局,Android动态添加布局的两种方式
  6. 为某个酒店编写程序:酒店管理系统,模拟订房、退房、打印所有房间状态等功能。 1、该系统的用户是:酒店前台。 2、酒店使用一个二维数组来模拟。“Room[][] roo
  7. 【干货】京东电商推荐系统的应用实践.pdf(附下载链接)
  8. Oracle入门教程,新手必读
  9. 加州无人车路测新添Lyft,中国公司Roadstar和长安也要去跑一跑
  10. mongodb卸载_如何在Windows上安装MongoDB,启动,卸载
  11. python课设带报告_20192423 2019-2020-2 《Python程序设计》实验三报告
  12. 软考资料已经 ready,你get 到了吗?
  13. Win10下使用nvm安装多个版本node.js
  14. jquery animate 数字动态变化达不到指定的值
  15. Android wifi 常见断开问题总结
  16. 华硕笔记本电脑计算机打不开,华硕笔记本电脑无线开关打不开怎么办
  17. vue-cli: v-on事件绑定 的用法
  18. 计算机登录其他用户,限制用户登录到其他计算机
  19. Java落寞了?7 月编程语言最新排行榜
  20. 操作系统重装,如何恢复oracle数据库

热门文章

  1. Spring JPA 随手记
  2. python制作qq登录界面_用Python实现一个最新QQ办公版(TIM)的登录界面
  3. java 面试题合集_撩课-Java面试题合辑1-50题
  4. [PaddleSeg 源码阅读] PaddleSeg计算 mIoU
  5. pytorch项目报错:ImportError: no module named “cd“
  6. 关于如何让模拟器(包括虚拟机哦) 更加流畅
  7. 微信小程序富文本编辑器获取内容
  8. 给view添加单边阴影
  9. const定义及初始化约束
  10. SwiftUI AVKit 之合并和叠加音频mp3 并输出