最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python使用Tkinter實(shí)現(xiàn)在線音樂(lè)播放器

 更新時(shí)間:2018年01月30日 10:38:55   作者:zhangqiang1104  
這篇文章主要為大家詳細(xì)介紹了python使用Tkinter實(shí)現(xiàn)在線音樂(lè)播放器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例使用Tkinter實(shí)現(xiàn)在線音樂(lè)播放器的具體代碼,供大家參考,具體內(nèi)容如下

1.先使用Tkinter庫(kù)寫(xiě)界面
2.寫(xiě)點(diǎn)擊按鈕觸發(fā)的事件

(1).使用網(wǎng)易音樂(lè)的api,返回?cái)?shù)據(jù)包裝成json格式數(shù)據(jù),解析數(shù)據(jù)
(2)涉及到多線程的問(wèn)題未解決,一個(gè)軟件默認(rèn)打開(kāi)一個(gè)線程,當(dāng)播放歌曲時(shí),顯示界面就會(huì)卡掉,導(dǎo)致python停止工作

代碼:

#coding=utf-8 
 
from Tkinter import * 
import tkMessageBox 
import urllib 
import json 
import mp3play 
import time 
 
musicList = [] 
 
#定義點(diǎn)擊按鈕響應(yīng)的函數(shù) 
def music(): 
 #print "按鈕點(diǎn)擊" 
 #先判斷用戶是否在編輯框輸入了內(nèi)容 
 if E.get() == '': 
 #發(fā)出警告,需要先import tkMessageBox 
 tkMessageBox.showinfo("提示:","請(qǐng)先輸入內(nèi)容!") 
 #使用return,當(dāng)滿足前面的條件時(shí),不在往下執(zhí)行 
 return 
 #使用網(wǎng)易api,發(fā)送請(qǐng)求,需要import urllib 
 #報(bào)錯(cuò),需要將漢字編碼程ascii,才能添加到鏈接中 
 name = E.get().encode('utf-8') 
 name = urllib.quote(name) 
 html = urllib.urlopen('http://s.music.163.com/search/get/?type=1&s=%s&limit=9'%name).read() 
 #返回json格式數(shù)據(jù),可用正則匹配需要數(shù)據(jù),也可使用json.loads() 
 print html 
 #將返回文件轉(zhuǎn)化為json格式,提取所需要的數(shù)據(jù),需要import json 
 a = json.loads(html) 
 #print a 
 print a[u'result'][u'songs'][0][u'album'][u'name'] 
 #將所有結(jié)果顯示在列表中 
 #print len(a[u'result'][u'songs'][0]) 
 for i in range(len(a[u'result'][u'songs'][0])): 
 #注意insert參數(shù) 
 LB.insert(i,a[u'result'][u'songs'][i][u'album'][u'name']+"("+a[u'result'][u'songs'][i][u'artists'][0][u'name']+")") 
 #先獲取到歌曲url列表 
 musicList.append(a[u'result'][u'songs'][i][u'audio']) 
#定義雙擊列表響應(yīng)函數(shù) 
 
def play(event): 
 #獲取點(diǎn)擊后返回的結(jié)果curselection() 
 #print LB.curselection()[0] 
 urlnum = LB.curselection()[0] 
 #不用流媒體播放,先下載下來(lái)再播放 
 # urllib.urlretrieve(musicList[urlnum],'1.mp3') 
 # #播放歌曲,調(diào)用import mp3play 
 # time.sleep(50) 
 clip = mp3play.load('1.mp3') 
 clip.play() 
 #設(shè)置播放時(shí)間import time 
 time.sleep(min(300, clip.seconds())) 
 #死機(jī)了,無(wú)法響應(yīng),因?yàn)榫€程的問(wèn)題!?。。。?! 
 #一個(gè)線程同一時(shí)間只能做一件事情,放歌時(shí)需再開(kāi)一個(gè)線程 
 
#創(chuàng)建父窗口對(duì)象, 
top = Tk() 
#可以設(shè)置窗口的屬性,如:標(biāo)題,大小 
top.title("在線音樂(lè)播放器——張強(qiáng)") 
top.geometry('500x300+800+300') 
#創(chuàng)建編輯框,放到父窗口top上,用pack顯示 
E = Entry(top) 
E.pack() 
#創(chuàng)建按鈕,定義按鈕觸發(fā)的函數(shù)command 
B = Button(top,text="搜 索",command = music) 
B.pack() 
#定義列表的響應(yīng)函數(shù) 
LB = Listbox(top,width = '50',listvariable = StringVar()) 
#綁定觸發(fā)事件的方式-雙擊左鍵,和響應(yīng)函數(shù) 
LB.bind('<Double-Button-1>',play) 
LB.pack()#要放到最后 
#定義標(biāo)簽 
label = Label(top,text = "歡迎使用!",fg = 'red') 
label.pack() 
#循環(huán)向windows發(fā)送消息,用于顯示窗口 
top.mainloop() 

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python使用moviepy讀取字幕srt文件報(bào)錯(cuò)的解決方法詳解

    Python使用moviepy讀取字幕srt文件報(bào)錯(cuò)的解決方法詳解

    這篇文章主要為大家詳細(xì)介紹了Python使用moviepy讀取字幕srt文件報(bào)錯(cuò)‘gbk‘?codec?can‘t?decode的兩種解決辦法,有需要的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-01-01
  • Python筆記之facade模式

    Python筆記之facade模式

    這篇文章主要為大家詳細(xì)介紹了Python筆記之facade模式,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • Python3壓縮和解壓縮實(shí)現(xiàn)代碼

    Python3壓縮和解壓縮實(shí)現(xiàn)代碼

    這篇文章主要介紹了Python3壓縮和解壓縮實(shí)現(xiàn)代碼,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • Python利用plotly繪制正二十面體詳解

    Python利用plotly繪制正二十面體詳解

    plotly的Python軟件包是一個(gè)開(kāi)源的代碼庫(kù),是一款擅長(zhǎng)交互的Python繪圖庫(kù)。本文就來(lái)用plotly繪制正二十面體,需要的可以參考一下
    2023-02-02
  • python 隨機(jī)森林算法及其優(yōu)化詳解

    python 隨機(jī)森林算法及其優(yōu)化詳解

    這篇文章主要介紹了ptyhon 隨機(jī)森林算法及其優(yōu)化詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • Python Matplotlib繪圖基礎(chǔ)知識(shí)代碼解析

    Python Matplotlib繪圖基礎(chǔ)知識(shí)代碼解析

    這篇文章主要介紹了Python Matplotlib繪圖基礎(chǔ)知識(shí)代碼解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • Python機(jī)器學(xué)習(xí)之決策樹(shù)和隨機(jī)森林

    Python機(jī)器學(xué)習(xí)之決策樹(shù)和隨機(jī)森林

    本文主要介紹了機(jī)器學(xué)習(xí)之決策樹(shù)和隨機(jī)森林,詳細(xì)的介紹了實(shí)現(xiàn) 原理機(jī)器實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • 使用python telnetlib批量備份交換機(jī)配置的方法

    使用python telnetlib批量備份交換機(jī)配置的方法

    今天小編就為大家分享一篇使用python telnetlib批量備份交換機(jī)配置的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-07-07
  • 使用Python實(shí)現(xiàn)FTP文件自動(dòng)傳輸腳本

    使用Python實(shí)現(xiàn)FTP文件自動(dòng)傳輸腳本

    這篇文章主要為大家詳細(xì)介紹了如何使用Python實(shí)現(xiàn)FTP文件自動(dòng)傳輸腳本,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的小伙伴可以了解下
    2023-12-12
  • python利用rsa庫(kù)做公鑰解密的方法教程

    python利用rsa庫(kù)做公鑰解密的方法教程

    RSA是一種公鑰密碼算法,RSA的密文是對(duì)代碼明文的數(shù)字的 E 次方求mod N 的結(jié)果。下面這篇文章主要給大家介紹了關(guān)于python利用rsa庫(kù)做公鑰解密的方法教程,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。
    2017-12-12

最新評(píng)論

织金县| 常山县| 孝义市| 攀枝花市| 钦州市| 丹凤县| 洛浦县| 麟游县| 文化| 绥化市| 西丰县| 长子县| 兰溪市| 将乐县| 达州市| 安乡县| 砀山县| 突泉县| 禹州市| 肥东县| 延吉市| 收藏| 海兴县| 商水县| 岳西县| 郓城县| 商都县| 乌兰县| 普定县| 三都| 确山县| 和静县| 嘉定区| 临沂市| 屏南县| 乐安县| 泸定县| 赣榆县| 苏州市| 南涧| 吴忠市|