freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

基于qt的在線音樂播放器的設計-資料下載頁

2024-10-24 18:28本頁面

【導讀】的指導下,獨立進行研究工作所取得的成果,成果不存在知識產權爭議,表或撰寫過的作品成果。對本文的研究做出重要貢獻的個人和集體均已。在文中以明確方式標明。本人完全意識到本聲明的法律結果由本人承擔。計出一款能否播放在線音樂的音樂播放器。1)美觀時尚富有人性化的操作界面;2)顯示正在播放的一些歌曲信息;4)能夠控制歌曲的播放暫停,切歌等操作;5)歌曲列表刷新。2020年12月:論文開題寫好開題報告;2020年1月:翻閱資料并記錄與論文研究方向相關的要點和論據;2020年5月:完善論文,交由指導老師評閱并定稿及完成畢業(yè)答辯。息后會進行對應的處理。聯(lián)系畢業(yè)設計指導導師,尋求有關畢業(yè)設計信息,確定設計課題方向與設計內容。虛心向老師請教和同學進行學習交流,保障畢業(yè)設計的順利完成。播放各種格式的音頻文件。但大多數(shù)的音樂播

  

【正文】 ,然后在構造函數(shù)中通過一個 for 循環(huán)生成。 /*************************************************************/ /* 將 sender強制轉換為 QPushButton,再對接收到的信號根據其 objectName集中處理 */ /*************************************************************/ void PlayControl::btnClicked() { QPushButton *btn = qobject_castQPushButton *(sender())。 for (int i=0。iPLAY_STATE_COUNT。i++) { if (btnobjectName() == pause) { btnhide()。 (2)show()。 } else if (btnobjectName() == play) { btnhide()。 (3)show()。 } 11 else setBtnState()。 if (btnobjectName()==g_BtnDescription[i].btnNme) { emit StateChanged(g_BtnDescription[i].state)。 break。 } } } 以上代碼就是將收到的控制按鈕點擊事件以消息的形式發(fā)送出去,已保持類的封裝性。 PlayList 歌曲切換類 功能描述: 此功能模塊實現(xiàn)通過一個變量控制當前所播放的歌曲,并且如果歌曲到了第一首或最后一首就循環(huán)切換。代碼如下: const MusicList::MusicInfoamp。 PlayList:: GetNext() //下一首 { if (pmusiclisttotalRecordCountcurentIndex+1) curentIndex++。 else curentIndex = 0。 return pmusiclistlstMusicInfo[curentIndex]。 } const MusicList::MusicInfoamp。 PlayList:: GetPre() //上一首 { if (curentIndex0) curentIndex。 else curentIndex = pmusiclisttotalRecordCount1。 return pmusiclistlstMusicInfo[curentIndex]。 } const MusicList::MusicInfoamp。 PlayList::currentPlay() //獲取當前播放歌曲信息 12 { return pmusiclistlstMusicInfo[curentIndex]。 } void PlayList::setcurIndex(int row, int page) //設置切換到那首歌 { curentIndex = row + page*g_listViewSize。qDebug()playlist:curentIndexg_listViewSize。 } int PlayList::getcurIndex() { return curentIndex。 } QListViewEx 歌曲列表類 功能描述: 此功能模塊實現(xiàn)通過一個對話框顯示歌曲的相關信息,并且高亮顯示當前播放的歌曲,而且該列表支持用戶點擊播放。 流程描述: 運行音樂播放器軟件,立即調用 Webservice 接口 [9], 等獲取到網絡反饋時, 將接收到的 XML 文件先寫到本地緩存中去,然后通過調用函數(shù)解析該 XML 文件。將解析出來的信息存儲到一個全局的結構體變量中,最后通過讀取該結構體的信息將歌曲名顯示到列表中。 XML 文件解析 可擴展標記語言 (Extensible Markup Language, XML) ,用于標記電子文件使其具有結構性的標記語言,可以用來標記數(shù)據、定義數(shù)據類型,是一種允許用戶對自己的標記語言進行定義的源語言。 XML 是 標準通用標記語言 (SGML) 的子集,非常適合 Web [10]傳輸。 XML 提供統(tǒng)一的方法來描述和交換獨立于 應用程序 或供應商的結構化數(shù)據。 功能描述:此模塊主要是將 XML 格式的文件解析出來并存到一個全局的結構體中。下面附上 XML 格式文件及解析代碼: 13 圖4-5網絡請求返回的 XML 數(shù)據 /*********************************/ /*音樂播放列表結構體 */ /*********************************/ struct MusicList { struct MusicInfo { QString name。 QString album。 QString singer。 QString path。 QString timeLength。 void Parse(const QDomNode amp。node)。 }。 int totalRecordCount。 QListMusicInfo lstMusicInfo。 14 void Parse(const QDomNode amp。node)。 }。 /*****************************************************/ /* 歌曲列表解析 */ /****************************************************/ void MusicList::Parse(const QDomNode amp。node) { QDomNodeList nlFriend = ().elementsByTagName(EntityMusic)。 ()。 int i = 0。 for (。 i ()。 i++) { QDomNode ndFriend = (i)。 MusicInfo friendinfo。 (ndFriend)。 (friendinfo)。 } totalRecordCount =i。 } void MusicList::MusicInfo::Parse(const QDomNode amp。node) { name = (name).text()。 album = (album).text()。 singer = (singer).text()。 path = (path).text()。 timeLength = (timeLength).text()。 } 主界面 GUI 及具體功能實現(xiàn) 界面各控件位置及大小設置 以下代碼主要功能就是繪制窗口主界面,設置各控件的位置、大小等,代碼如下: 15 CustomMusic::CustomMusic(QWidget *parent) : BaseWidget(parent) ,_currentPage(0) ,pages(0) { thissetTitle(QString::fromLocal8Bit(音樂點播 ))。//調用 BaseWidget 基類函數(shù) back_music = new QFrame(this)。 back_musicsetGeometry(0,65,426,387)。 back_musicsetObjectName(back_music)。 seekslider=new Phonon::SeekSlider(this)。//播放進度條 seekslidersetMediaObject(STGlobals::instance().getMediaPlayer())。 seekslidersetGeometry(QRect(20,370,380,5))。 playControl=new PlayControl(this)。 //實例化 PlayControl 類做播放控件 playControlsetGeometry(QRect(20,410,0,0))。 connect(playControl, SIGNAL(StateChanged(PlayState)),this, SLOT(btnClicked(PlayState)))。 refresh = new QPushButton(QString::fromLocal8Bit(刷新 ),this)。 refreshsetGeometry(305,410,90,45)。 connect(refresh,SIGNAL(clicked()),this,SLOT(songlistRefresh()))。 refreshsetObjectName(refresh)。 listView=new QListViewEx(this)。 //實例化 QListViewEx 類做播放列表 listViewsetGeometry(440, 100, 280, 360)。 listViewsetViewMode(QListView::ListMode)。 listViewsetFrameStyle(QFrame::NoFrame)。 connect(listView, SIGNAL(clicked(const QModelIndex amp。)), this, SLOT(OnListViewClicked(const QModelIndex amp。)))。 sliderv= new QProgressBar(this)。 // 歌曲列表翻頁進度條 slidervsetGeometry(721,100,4,350)。 slidervsetOrientation(Qt::Vertical)。 16 slidervsetTextVisible(false)。 slidervsetValue(100)。 slidervsetObjectName(sliderv)。 _scrollUp=new QPushButton(this)。 //上翻頁按鈕 _scrollUpsetGeometry(730,100,60,170)。 _scrollUpsetObjectName(scrollUp)。 connect(_scrollUp, SIGNAL(clicked()),this, SLOT(onScrollUp()))。 _scrollDown=new QPushButton(this)。 //下翻頁按鈕 _scrollDownsetObjectName(scrollDown)。 _scrollDownsetGeometry(730,280,60,170)。 connect(_scrollDown, SIGNAL(clicked()),this, SLOT(onScrollDown()))。 setBtnStyle()。 name = new QLabel(this)。 //歌曲信息顯示欄 namesetGeometry(30,100,300,40)。 album = new QLabel(this)。 albumsetGeometry(30,140,300,40)。 singer = new QLabel(this)。 singersetGeometry(30,180,300,40)。 curtime = new QLabel(this)。 .//時間顯示欄 curtimesetGeometry(20,375,50,20)。 curtimesetObjectName(curtime)。 totaltime = new QLabel(this)。 totaltimesetGeometry(350,375,50,20)。 totaltimesetAlignment(Qt::AlignRight)。 totaltimesetObjectName(totaltime)。 } 歌曲控制按鈕功能實現(xiàn) 該功能是通過用戶點擊按鈕, PlayControl 實例發(fā)送消息,當前主界面接受消息后調用 PlayList實 例設置當前歌曲播放序號,最后主界面得到播放序號后開始播放新的歌曲。主要用到了 Qt 的信號與槽機制。 void Custo
點擊復制文檔內容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1