国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python使用PyQt5/PySide2編寫一個(gè)極簡的音樂播放器功能

2020-02-15 21:20:09
字體:
供稿:網(wǎng)友

疫情肆虐,憋在家實(shí)在無聊,索性寫點(diǎn)東西,于是就有了這個(gè)極極極極極簡的音樂播放器。

這個(gè)極極極簡的音樂播放器類似于“閱后即焚”的軟件,播放器可以隨機(jī)播放歌曲,獲取下一首歌曲,不能重新播放上一首歌曲,不能獲取歌曲的名稱和演唱者。聽過的歌曲,就像過眼云煙,放完即散。

下面來看看如何用Python實(shí)現(xiàn)這個(gè)音樂播放器軟件吧!

一、創(chuàng)建UI界面

首先,我們來創(chuàng)建這個(gè)播放器的UI界面。這個(gè)播放器一共有6個(gè)控件:

    左上角的程序關(guān)閉按鈕; 左側(cè)的播放狀態(tài)標(biāo)簽; 頂部的slogan; 播放/暫停按鈕; 下一首按鈕; 播放進(jìn)度條;

基于以上控件,我們用一個(gè)網(wǎng)格布局來排列;

class Music(QtWidgets.QMainWindow): def __init__(self): super().__init__() self.setFixedSize(400,200) self.setWindowTitle("州的先生") self.init_ui() self.custom_style() self.playing = False # 播放狀態(tài)初始化為否 self.player = QMediaPlayer(self) # 設(shè)置樣式 def custom_style(self): self.setStyleSheet('''  #main_widget{  border-radius:5px;  }  #play_btn,#pervious_btn,#next_btn{  border:none;  }  #play_btn:hover,#pervious_btn:hover,#next_btn:hover{  background:gray;  border-radius:5px;  cursor:pointer;  } ''') self.close_btn.setStyleSheet('''  QPushButton{  background:#F76677;  border-radius:5px;  }  QPushButton:hover{  background:red;  }''') self.status_label.setStyleSheet('''  QLabel{  background:#F7D674;  border-radius:5px;  } ''') # 初始化UI界面 def init_ui(self): # 窗口布局 self.main_widget = QtWidgets.QWidget() self.main_widget.setObjectName("main_widget") self.main_layout = QtWidgets.QGridLayout() self.main_widget.setLayout(self.main_layout) # 標(biāo)題 self.title_lable = QtWidgets.QLabel("聽者,如過眼云煙……") # 關(guān)閉按鈕 self.close_btn = QtWidgets.QPushButton("") # 關(guān)閉按鈕 self.close_btn.setFixedSize(15,15) # 音樂狀態(tài)按鈕 self.status_label = QtWidgets.QLabel("") self.status_label.setFixedSize(15,15) # 播放按鈕 play_icon = qta.icon("fa.play-circle",) self.play_btn = QtWidgets.QPushButton(play_icon,"") self.play_btn.setIconSize(QtCore.QSize(80, 80)) self.play_btn.setFixedSize(82,82) self.play_btn.setObjectName("play_btn") # 下一首按鈕 next_icon = qta.icon("fa.play-circle-o") self.next_btn = QtWidgets.QPushButton(next_icon,"") self.next_btn.setIconSize(QtCore.QSize(80,80)) self.next_btn.setFixedSize(82,82) self.next_btn.setObjectName("next_btn") # 進(jìn)度條 self.process_bar = QtWidgets.QProgressBar() self.process_value = 0 self.process_bar.setValue(self.process_value) self.process_bar.setFixedHeight(5) self.process_bar.setTextVisible(False) self.main_layout.addWidget(self.close_btn,0,0,1,1) self.main_layout.addWidget(self.title_lable,0,1,1,1) self.main_layout.addWidget(self.status_label,1,0,1,1) self.main_layout.addWidget(self.play_btn, 1, 1, 1, 1) self.main_layout.addWidget(self.next_btn, 1, 2, 1, 1) self.main_layout.addWidget(self.process_bar,2,0,1,3) self.setCentralWidget(self.main_widget)            
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 道真| 呈贡县| 榆社县| 营山县| 高陵县| 栖霞市| 郑州市| 通渭县| 应城市| 扎兰屯市| 宜州市| 句容市| 新津县| 胶南市| 德令哈市| 永靖县| 丹棱县| 肃宁县| 南平市| 建德市| 隆昌县| 宜丰县| 四会市| 昌邑市| 浑源县| 自治县| 灵石县| 花垣县| 华安县| 苍南县| 八宿县| 上杭县| 滨州市| 通榆县| 泸州市| 佳木斯市| 忻州市| 九江县| 观塘区| 左权县| 友谊县|