C課程設(shè)計(jì)論文媒體播放器的設(shè)計(jì)與實(shí)現(xiàn)

上傳人:仙*** 文檔編號(hào):35033890 上傳時(shí)間:2021-10-25 格式:DOC 頁數(shù):53 大小:4.73MB
收藏 版權(quán)申訴 舉報(bào) 下載
C課程設(shè)計(jì)論文媒體播放器的設(shè)計(jì)與實(shí)現(xiàn)_第1頁
第1頁 / 共53頁
C課程設(shè)計(jì)論文媒體播放器的設(shè)計(jì)與實(shí)現(xiàn)_第2頁
第2頁 / 共53頁
C課程設(shè)計(jì)論文媒體播放器的設(shè)計(jì)與實(shí)現(xiàn)_第3頁
第3頁 / 共53頁

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《C課程設(shè)計(jì)論文媒體播放器的設(shè)計(jì)與實(shí)現(xiàn)》由會(huì)員分享,可在線閱讀,更多相關(guān)《C課程設(shè)計(jì)論文媒體播放器的設(shè)計(jì)與實(shí)現(xiàn)(53頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、各專業(yè)全套優(yōu)秀畢業(yè)論文圖紙 C#程序設(shè)計(jì) 設(shè)計(jì)說明書 媒體播放器的設(shè)計(jì)與實(shí)現(xiàn) 班 級(jí): 微軟1班 指導(dǎo)老師: 殷玥 小組成員:孟燁、張文博、賀培炎 成 績(jī): 課程設(shè)計(jì)任務(wù)書 2011—2012學(xué)年第一學(xué)期 專 業(yè): 微軟技術(shù)與應(yīng)用 課程設(shè)計(jì)名稱: C#課程設(shè)計(jì) 設(shè)計(jì)題目: 媒體播放器的設(shè)計(jì)與實(shí)現(xiàn)

2、 完成期限:自 2014 年 12月 01 日至 2014 年 12 月 23 日共 4 周 設(shè)計(jì)依據(jù)、要求及主要內(nèi)容(可另加附頁): 根據(jù)程序設(shè)計(jì)所學(xué)知識(shí),設(shè)計(jì)與實(shí)現(xiàn)一個(gè)媒體播放器,該XXX設(shè)計(jì)的內(nèi)容和功能要求如下: (1) 用QT設(shè)計(jì)一個(gè)畫面簡(jiǎn)潔的媒體播放器,Qlist用作曲目列表框; (2) 通過按鈕既可以一次性添加一首歌曲,也可以通過文件夾一次性添加多首歌曲等; (3) 在下次播放時(shí)仍保留上次播放的的曲目; (4) 可一次性刪除一首或多首歌曲; (5) Qlist有快捷菜單,該菜單包含能:播放、暫停、刪除、單曲循環(huán)、順序播放、 隨機(jī)播放、全部循環(huán)和退

3、出; 要求:系統(tǒng)功能設(shè)計(jì)基本完善,并寫出詳細(xì)的設(shè)計(jì)說明書。 (6) 能夠播放mp3和視頻; 指導(dǎo)教師(簽字): 批準(zhǔn)日期: 年 月 日 摘 要 關(guān)鍵詞:媒體播放器; 刪除; 循環(huán); 目錄 1課題描述 1 2程序設(shè)計(jì)流程圖 1 2.1 系統(tǒng)說明 1 2.2主界面的設(shè)計(jì) 1 3 功能的設(shè)計(jì) 1 3.1 播放器功能的設(shè)計(jì) 1 3.2 播放器功能的設(shè)計(jì) 1 3.3 播放器功能的設(shè)計(jì) 1 4測(cè)試 1 4.1系統(tǒng)測(cè)試 1 4.2 調(diào)試結(jié)果 1 總結(jié) 1 參考文獻(xiàn)

4、 1 附錄: 1 源代碼: 1 1課題描述 構(gòu)建一個(gè)簡(jiǎn)單的播放器提供播放、暫停、刪除等功能,支持多種格式,窗體上有7個(gè)按鈕,一個(gè)windows平臺(tái)播放器控件和一個(gè)listBox控件 用來顯示曲目。 為界面、按鈕等控件設(shè)置屬性 用戶界面、按鈕等控件 程序開始 調(diào)式程序 添加程序代碼 運(yùn)行結(jié)束 2程序設(shè)計(jì)流程圖 2.1 系統(tǒng)說明 在QT中的環(huán)境下設(shè)計(jì)出簡(jiǎn)單的計(jì)算器的Window 窗體。 2.2主界面的設(shè)計(jì) 3 功能的設(shè)計(jì) 功能簡(jiǎn)介: (1)添加到播放列表:在列表區(qū)域單擊右鍵

5、中的“添加到播放列表”,彈出打開本地文件的窗口,可一次添加一首或多首歌曲到播放列表中。 (2)播放:選擇歌曲,在右鍵菜單中播放歌曲,即可播放選中的歌曲;雙擊選中的歌曲也可以實(shí)現(xiàn)播放功能;直接點(diǎn)擊播放器中的“播放”也可播放選中的歌曲。 (3)刪除單曲:選擇要?jiǎng)h除的歌曲,單擊“刪除單曲”,即可從列表中刪除此歌曲。 (4)單曲循環(huán):在曲目列表框中,右擊鼠標(biāo)彈出快捷菜單,選中歌曲,右鍵,選中“單曲循環(huán)”,即可重復(fù)播放選中的歌曲。 (5)退出:?jiǎn)螕簟巴顺觥奔纯赏顺霰鞠到y(tǒng)。 (6)上一曲:?jiǎn)螕簟吧弦磺奔纯刹シ胚x中歌曲的上一曲。 (7)下一曲:?jiǎn)螕簟跋乱磺奔纯刹シ胚x中歌曲的下一首。 (

6、8) 全曲循環(huán):在曲目列表框中,右擊鼠標(biāo)彈出快捷菜單,選中歌曲,單擊“全部循環(huán)”,即可全部循環(huán)。 (9) 順序播放:?jiǎn)螕簟绊樞虿シ拧?,即可既可按列表順序依次自?dòng)播放。 (10)刪除歌曲:在曲目列表框中,右擊鼠標(biāo)彈出快捷菜單,單擊“刪除歌曲”既可刪除所選中的一首或多首歌曲; (11)隨即播放:在曲目列表框中,右擊鼠標(biāo)彈出快捷菜單,單擊“隨機(jī)播放”既可自動(dòng)實(shí)現(xiàn)隨機(jī)播放列表中的歌曲; (12)暫停/播放/退出:在曲目列表框中,右擊鼠標(biāo)彈出快捷菜單,單擊“暫?!?、“播放”、“退出”既可實(shí)現(xiàn); (13)播放器實(shí)現(xiàn)魔音播放 1. 操作界面顯示: 播放器的主界面如下, 單擊“

7、添加歌曲”,實(shí)現(xiàn)播放功能 雙擊歌曲,即可實(shí)現(xiàn)播放,如下, 主要方法: 3.1 添加歌曲功能的設(shè)計(jì) private void btnAddFile_Click(object sender, EventArgs e) { int i; odlgMedia.FileName = ""; // 設(shè)置默認(rèn)文件名 if (odlgMedia.ShowDialog() == DialogResult.OK)

8、 { string path = odlgMedia.FileName; FileInfo f = new FileInfo(path); AddFile(f.FullName); string strFile = Convert.ToString(numOfMusic); for (i = 1; i <= 5 - strFile.Length; i++) {

9、 strFile += ""; } strFile = f.FullName; int n = strFile.LastIndexOf("\\") + 1; strFile = strFile.Substring(n) + "/" + strFile.Substring(0, n); lstFileList.Items.Add(strFile); if (lst

10、FileList.Items.Count >= 0) { OpenBtn(); } } } 3.2 添加目錄功能的設(shè)計(jì) private void btnAddFiles_Click(object sender, EventArgs e) { fbdlgMedia.ShowNewFolderButton = true; fbdlgMedia.Description = "

11、請(qǐng)選擇媒體文件目錄:"; fbdlgMedia.ShowNewFolderButton = false; if (fbdlgMedia.ShowDialog() == DialogResult.OK) { AddFiles(fbdlgMedia.SelectedPath, lstFileList); if (lstFileList.Items.Count > 0) { Ope

12、nBtn(); } } } 3.3刪除單曲 private void btnDelete_Click(object sender, EventArgs e) { int i = lstFileList.SelectedIndex; if (lstFileList.SelectedIndex >= 0) { if ((selectOne == lstFileList.Select

13、edIndex) && (mediaPlayer.URL != "")) { MessageBox.Show("不能刪除正在播放的文件", "錯(cuò)誤"); } else { DelFile(i + 1); lstFileList.Items.RemoveAt(i); if (i < lstFile

14、List.Items.Count) { lstFileList.SelectedIndex = i; } else if (lstFileList.Items.Count == 0) { CloseBtn(); } else

15、 { lstFileList.SelectedIndex = 0; } } } 3.4播放 private void btnPlay_Click(object sender, EventArgs e) { if (lstFileList.Items.Count > 0) { if (lstFileLis

16、t.SelectedIndex < 0) { selectOne = 1; lstFileList.SelectedIndex = 0; } else { selectOne = lstFileList.SelectedIndex; } Play(selectOne);

17、 tmrMedia.Enabled = true; btnStop.Enabled = true; } } 3.5 上一首 private void btnBack_Click(object sender, EventArgs e) { int j = lstFileList.SelectedIndex; lstFileList.SelectedIndex = -1; if (

18、j > -1) { if (j == 0) selectOne = 0; else { j -= 1; selectOne = j; } Play(selectOne); lstFileList.SelectedIndex = j;

19、 } } 3.6下一曲 private void btnForward_Click(object sender, EventArgs e) { int j = lstFileList.SelectedIndex; if (j < lstFileList.Items.Count) { j = j + 1; selectOne = j; if (j ==

20、lstFileList.Items.Count) { j = lstFileList.Items.Count - 1; selectOne = j; } lstFileList.SelectedIndex = -1; Play(selectOne); btnStop.Enabled = true; lstFil

21、eList.SelectedIndex = j; } } 3.7 停止 private void btnStop_Click(object sender, EventArgs e) { mediaPlayer.URL = ""; this.Text = "媒體播放器:停止!"; tmrMedia.Enabled = false; } 3.8 刪除歌曲 private void 刪除歌曲ToolStri

22、pMenuItem_Click(object sender, EventArgs e) { int i = lstFileList.SelectedIndex; if (lstFileList.SelectedIndex >= 0) { object[] selected_objs = new object[lstFileList.SelectedItems.Count]; lstFileList.SelectedItems.C

23、opyTo(selected_objs, 0); foreach (object oval in selected_objs) { string msg = lstFileList.Items[lstFileList.SelectedIndex].ToString(); string[] strs = msg.Split(/); string s = strs[1] + strs[0];

24、 if (mediaPlayer.URL == s) { this.Text = null; mediaPlayer.URL = null; lstFileList.Items.Remove(oval); this.Text = "播放停止!"; }

25、 else lstFileList.Items.Remove(oval); } } } 4測(cè)試 4.1系統(tǒng)測(cè)試 4.2 調(diào)試結(jié)果 總結(jié) 經(jīng)過一周的課程設(shè)計(jì),使我對(duì)QT編程有了更深一層的了解。經(jīng)過編程與不斷調(diào)試,盡管依然存在很多的問題,但努力終于有了成果。設(shè)計(jì)的是簡(jiǎn)單媒體播放器程序。整個(gè)設(shè)計(jì)的過程也是不斷學(xué)習(xí)的一個(gè)過程,在運(yùn)用舊知識(shí)的同時(shí)也學(xué)到了不少新知識(shí),給自己大腦充電的同時(shí)也填補(bǔ)了一些相關(guān)知識(shí)方面的空白。整個(gè)設(shè)計(jì)的過程中,不僅

26、僅只是經(jīng)歷了是失敗與成功所帶來的啟迪,還有同學(xué)之間互相幫助的友誼。通過這次課程設(shè)計(jì),掌握住到了應(yīng)該掌握住的知識(shí),也讓體會(huì)到了生活中應(yīng)該體會(huì)到的東西??傊?,這次實(shí)習(xí)是有收獲的。 參考文獻(xiàn) [1] 馬靖善等.C語言程序設(shè)計(jì).清華大學(xué)出版社,2005 [2] 譚浩強(qiáng).C語言程序設(shè)計(jì)(第二版).北京:高等教育出版社,2002 [3] 黃超.C語言程序設(shè)計(jì).北京.人民郵電出版社.2003 [4] 譚浩強(qiáng)等.C語言程序設(shè)計(jì).清華大學(xué)出版社,2007 [5] 方敏,張彤.C語言程序設(shè)計(jì).西安電子科技大學(xué)出版社.2006 [6]Qt 5開發(fā)及實(shí)例 [7]Qt Creator快速入門 附

27、錄: 源代碼: #include "dt_music.h" #include "ui_dt_music.h" #include //自定義類 #include "titlegroupbox.h" #include "toolglobal.h" #include "toolinternet.h" #include "musiclist.h" #include "lrcview.h" #include "bottomgroupbox.h" #include "internetwidget.h" #include "playmodle.h" #inc

28、lude "desktoplrc.h" #include "create_musiclist.h" #include "timing.h" #include "currentlrc.h" #include "videoplayer.h" //視頻播放器 #include "videoview.h" //部件類 #include //鼠標(biāo)事件 #include //關(guān)閉事件 #include #include #

29、include #include #include //定義字體 #include //#include #include //文件操作 #include //文件對(duì)話框 #include //文件操作 #include //目錄操作 #include

30、Box> //警告框 #include //輸入輸出流 #include //文件信息 //#include //調(diào)用系統(tǒng)命令 //#include //調(diào)用系統(tǒng)命令 //多媒體模塊 #include //多媒體播放器 #include //播放列表 #include

31、etaData> //多媒體數(shù)據(jù) //輔助功能 #include //事件 #include //定時(shí)器 #include //自定義 右鍵菜單 #include //搜索框 自動(dòng)補(bǔ)全 #include //計(jì)算窗口值 #include //布局管理器 #include DT_M

32、usic::DT_Music(QWidget *parent) : QMainWindow(parent), ui(new Ui::DT_Music) { ui->setupUi(this); //重寫窗口框架, 設(shè)置 無邊框 和 允許最小化和還原 setWindowFlags(Qt::FramelessWindowHint | Qt::WindowMinimizeButtonHint); //設(shè)置窗口出現(xiàn)位置 QDesktopWidget desktopWidget; setGeometry((deskto

33、pWidget.width()-this->width())/2, (desktopWidget.height()-this->height())/2, 969, 639); //初始化 界面 和 變量 init(); //為部件安裝事件過濾器 cob_addMusic ->installEventFilter(this); tbn_createList ->installEventFilter(this); tbn_search ->installEventFilter(this); lab_volumnFrame

34、->installEventFilter(this); playModle->installEventFilter(this); //多媒體信息改變 connect(player, SIGNAL(metaDataAvailableChanged(bool)), //多媒體 可用數(shù)據(jù)信息 改變 this, SLOT(getMetaData(bool))); connect(this, SIGNAL(gotMetaData(QStringList)),

35、 //顯示 歌曲/歌手 信息 bottomGroupbox, SLOT(showMetaData(QStringList))); connect(player, SIGNAL(durationChanged(qint64)), //多媒體 時(shí)長(zhǎng)信息 出現(xiàn) this, SLOT(durationChanged())); connect(player, SIGNAL(durationChanged(qint64)), //......

36、........... bottomGroupbox, SLOT(durationChanged(qint64))); connect(player, SIGNAL(stateChanged(QMediaPlayer::State)), //播放狀態(tài) 改變 this, SLOT(playStatusChanged(QMediaPlayer::State))); connect(this, SIGNAL(playStateChange(int)),

37、 //........... bottomGroupbox, SLOT(playStatusChanged(int))); connect(player, SIGNAL(positionChanged(qint64)), //播放進(jìn)度 改變 更新歌詞 this, SLOT(updateLrc(qint64))); connect(player, SIGNAL(positionChanged(qint64)), //.......

38、.... 更新進(jìn)度條 bottomGroupbox, SLOT(positionChanged(qint64))); //遍歷播放列表, 為每個(gè)播放列表關(guān)聯(lián)信號(hào)槽 for (int i=0; i

39、Changed(int))); connect(playlistVector.at(i), SIGNAL(currentIndexChanged(int)), //........設(shè)置播放列表中當(dāng)前歌曲被選中 musicList, SLOT(playList_currentIndexChanged(int))); } //播放控制按鈕操作(bottomGroupbox) connect(bottomGroupbox, SIGNAL(play_pause_click()),

40、 //播放暫停 處理 this, SLOT(play_pause_clicked())); connect(bottomGroupbox, SIGNAL(play_previous_click()), //上一曲 處理 this, SLOT(play_previous_clicked())); connect(bottomGroupbox, SIGNAL(play_next_click()), //下一曲 處理 this, SL

41、OT(play_next_clicked())); connect(bottomGroupbox, SIGNAL(lrc_click(bool)), //顯示/隱藏 桌面歌詞 this, SLOT(setLrcShown(bool))); connect(bottomGroupbox, SIGNAL(volumn_clicked(QPoint)), //音量 處理 this, SLOT(volumn_clicked(QPoint))); connec

42、t(bottomGroupbox, SIGNAL(slider_progress_valueChange(qint64)),//更新 進(jìn)度條 this, SLOT(seek(qint64))); connect(bottomGroupbox, SIGNAL(playModle_clicked(QPoint)), //單擊 “播放模式”, 顯示/隱藏 “播放模式”窗口 this, SLOT(playModle_clicked(QPoint))); /

43、/................設(shè)置playModel的當(dāng)前音量值 //音量控件窗口操作 connect(slider_volumn, SIGNAL(valueChanged(int)), //音量空間 拖動(dòng) player, SLOT(setVolume(int))); connect(slider_volumn, SIGNAL(sliderReleased()), lab_volumnFrame, SLOT(hide())); // connect(slider

44、_volumn, SIGNAL(sliderReleased()), //釋放 音量控件 隱藏控件 // slider_volumn, SLOT(hide())); // connect(slider_volumn, SIGNAL(sliderReleased()), //釋放 音量控件 隱藏 音量標(biāo)簽 數(shù)據(jù)寫入配置文件 // this, SLOT(sliderVolumn_Released())); //播放模式控件窗口操作 connec

45、t(playModle, SIGNAL(playModel_choose(playModelValue)), //選擇播放模式,為bottom設(shè)置相應(yīng)圖標(biāo) bottomGroupbox, SLOT(playModle_choosed(playModelValue))); connect(playModle, SIGNAL(playModel_choose(playModelValue)), //選擇播放模式,設(shè)置當(dāng)前播放模式值 this, SLOT(playModelState_changed(playModelVa

46、lue))); //播放列表控制 connect(musicList, SIGNAL(itemDoubleClicked(QTreeWidgetItem*, int)),//雙擊 播放歌曲 this, SLOT(itemPlay())); connect(musicList, SIGNAL(itemPlay()), this, SLOT(itemPlay())); //搜索按鈕 connect(tbn_search, SIGNAL(clicked()),

47、 //單擊 搜索按鈕 this, SLOT(searchMusic())); connect(this, SIGNAL(searchedMusicIndex(int, int)), musicList, SLOT(searchedMusic(int, int))); connect(toolGlobal, SIGNAL(magicStateChange(bool)), //魔音狀態(tài)改變 this, SLOT(maigcStateChan

48、ged(bool))); connect(titleGroupBox, SIGNAL(themeNumClick(int)), //設(shè)定主題 this, SLOT(setTheme(int))); //移除歌曲 connect(musicList, SIGNAL(removeMusic(int,int)), this, SLOT(removedMusic(int,int))); //倒計(jì)時(shí) 處理 connect(toolGlobal, SIGNAL(t

49、imeout_playStop()), this, SLOT(play_stop())); //設(shè)置改變,設(shè)置信息寫入配置文件 connect(playModle, SIGNAL(settingDataChanged(QString, QString)), //設(shè)置播放模式,信息寫入配置文件 this, SLOT(writeSettingdateToIni(QString,QString))); connect(titleGroupBox, SIGNAL(settingDataChanged(QStri

50、ng,QString)), //設(shè)置皮膚,信息寫入配置文件 this, SLOT(writeSettingdateToIni(QString,QString))); // connect(titleGroupBox, SIGNAL(clickGlobalMusic()), //單擊 本地音樂 // this, SLOT(clickedGlobalMusic())); // connect(titleGroupBox, SIGNAL(clickInternetMusic()),

51、 //單擊 網(wǎng)絡(luò)歌曲 // this, SLOT(clickedInternetMusic())); // connect(player, SIGNAL(metaDataChanged()), //多媒體 數(shù)據(jù)信息 改變 // this, SLOT(getMetaData())); // connect(player, SIGNAL(seekableChanged(bool)), //播放進(jìn)度改變 //

52、 this, SLOT(seekableChanged(bool))); // connect(player, SIGNAL(mediaChanged(QMediaContent)), //多媒體 改變 // this, SLOT(mediaChanged(QMediaContent))); // connect(player, SIGNAL(objectNameChanged(QString)), //對(duì)象名改變 // this, SLOT(obje

53、ctNameChanged(QString))); // connect(player, SIGNAL(playbackRateChanged(qreal)), //播放頻率 改變 // this, SLOT(playbackRateChanged(qreal))); // connect(player, SIGNAL(volumeChanged(int)), //聲音改變 // this, SLOT(volumeChanged(int))); //

54、 connect(player, SIGNAL(audioAvailableChanged(bool)), //未知信號(hào) // this, SLOT(audioAvailableChanged(bool))); connect(titleGroupBox, SIGNAL(ShowVideoPlayer()), this, SLOT(ShowVideoPlayer())); //邊緣縮放 isLeftPressDown = false; this->directi

55、on = NONE; this->centralWidget()->setMouseTracking(true); titleGroupBox->setMouseTracking(true); toolGlobal->setMouseTracking(true); // lrcView->setMouseTracking(true); musicList->setMouseTracking(true); bottomGroupbox->setMouseTracking(true); } DT_Music::~DT_Music()

56、 { delete ui; } //重寫 鼠標(biāo)按下事件 void DT_Music::mousePressEvent(QMouseEvent *event) {/* if (event ->button() == Qt::LeftButton) { offset = event ->globalPos() - pos(); }*/ if (event->button() == Qt::LeftButton) { isLeftPressDown = true;

57、if(direction != NONE) { this->mouseGrabber(); } else { dragPosition = event->globalPos() - this->frameGeometry().topLeft(); } } else { QMainWindow::mousePressEvent(event); } } //重寫 鼠標(biāo)移動(dòng)事件 void DT

58、_Music::mouseMoveEvent(QMouseEvent *event) {/* if (event ->buttons() & Qt::LeftButton) { QPoint temp; temp = event ->globalPos() - offset; move(temp); }*/ QPoint gloPoint = event->globalPos(); //鼠標(biāo)在桌面的坐標(biāo) QRect rect = this->rect();

59、 //窗口尺寸 QPoint tl = mapToGlobal(rect.topLeft()); //窗口左上頂點(diǎn)在桌面的坐標(biāo) QPoint rb = mapToGlobal(rect.bottomRight()); //窗口右下頂點(diǎn)在桌面的坐標(biāo) if(!isLeftPressDown) { region(gloPoint); //判斷鼠標(biāo)位置,現(xiàn)實(shí)鼠標(biāo)樣式 } else { if(

60、direction != NONE) //如果左鍵按下,且在窗口邊緣 { QRect rMove(tl, rb); switch(direction) { case LEFT: if(rb.x() - gloPoint.x() <= this->minimumWidth()) rMove.setX(tl.x()); e

61、lse rMove.setX(gloPoint.x()); break; case RIGHT: rMove.setWidth(gloPoint.x() - tl.x()); break; case UP: if(rb.y() - gloPoint.y() <= this->minimumHeight()) rMove.set

62、Y(tl.y()); else rMove.setY(gloPoint.y()); break; case DOWN: rMove.setHeight(gloPoint.y() - tl.y()); break; case LEFTTOP: if(rb.x() - gloPoint.x() <= this->minimumWidth(

63、)) rMove.setX(tl.x()); else rMove.setX(gloPoint.x()); if(rb.y() - gloPoint.y() <= this->minimumHeight()) rMove.setY(tl.y()); else rMove.setY(gloPoint.y());

64、 break; case RIGHTTOP: rMove.setWidth(gloPoint.x() - tl.x()); rMove.setY(gloPoint.y()); break; case LEFTBOTTOM: rMove.setX(gloPoint.x()); rMove.setHeight(gloPoint.y() - tl.y());

65、 break; case RIGHTBOTTOM: rMove.setWidth(gloPoint.x() - tl.x()); rMove.setHeight(gloPoint.y() - tl.y()); break; default: break; } this->setGeometry(rMove); }

66、 else { move(event->globalPos() - dragPosition); event->accept(); } } QMainWindow::mouseMoveEvent(event); } //鼠標(biāo)釋放事件 void DT_Music::mouseReleaseEvent(QMouseEvent *event) { if(event->button() == Qt::LeftButton) { isLeftPressDown = false; if(direction != NONE) { this->releaseMouse(); this->setCursor(QCursor(Qt::ArrowCursor)); } } } //重寫 關(guān)閉事件 void D

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!