




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 實(shí) 驗(yàn) 報(bào) 告 課程名稱 軟件案例分析 實(shí)驗(yàn)名稱 進(jìn)度指示器制作 班 級(jí) 學(xué) 號(hào) 姓 名 成 績(jī) 指導(dǎo)教師 實(shí)驗(yàn)日期 1. 實(shí)驗(yàn)?zāi)康?1) 理解自定義進(jìn)度指示器的設(shè)計(jì)原理。(2) 理解進(jìn)度百分比反色顯示實(shí)現(xiàn)原理。(3) 了解熟悉Qt Creator開(kāi)發(fā)環(huán)境及相關(guān)控件的使用。(4) 了解信號(hào)和槽的關(guān)聯(lián)及作用。(5) 熟練掌握QTimer定時(shí)器的使用方法。(6) 掌握動(dòng)態(tài)控件的創(chuàng)建和使用方法。(7) 掌握嵌入子對(duì)話框的實(shí)現(xiàn)方法。2. 實(shí)驗(yàn)環(huán)境Qt Creator + MinGW 4.9 (32-bit),Windows7,4G內(nèi)存,DELL筆記本一臺(tái)。3. 實(shí)驗(yàn)要求(1) 進(jìn)度條未完成進(jìn)度為白底
2、紅(或其他顏色)字。(2) 進(jìn)度條已完成進(jìn)度為紅(或其他顏色)底白字。(3) 進(jìn)度具有加速、減速、停止功能,如圖所示。(4) 運(yùn)行界面友好簡(jiǎn)潔。 主界面 子界面4. 實(shí)驗(yàn)步驟及代碼(1)啟動(dòng)Qt Creator,創(chuàng)建基于對(duì)話框的Qt Widgets Application類型的應(yīng)用程序,命名為ProSelf。(2)修改對(duì)話框標(biāo)題為“進(jìn)度指示器”。在主界面窗口中添加5個(gè)按鈕控件,三個(gè)靜態(tài)文本控件,和一個(gè)進(jìn)度條控件,界面設(shè)計(jì)如圖所示。(3) 在主界面設(shè)置五個(gè)PushButton控件,對(duì)象名稱分別為“start”,“up”,“down”,“stop”,“Close”,設(shè)置text文本為“開(kāi)始”,“加
3、速”,“減速”,“停止”,“關(guān)閉”,設(shè)置三個(gè)標(biāo)簽的text文本為“速度”,“0”,“秒/次”。(4) 向工程中添加Qt設(shè)計(jì)師界面類(模板為Dialog without Buttons)子對(duì)話框資源,命名為“Dialog”,修改標(biāo)題為“窗口標(biāo)題”,向設(shè)計(jì)界面添加一個(gè)Group Box控件,設(shè)置標(biāo)題為“子標(biāo)題”,向Group Box控件中添加一個(gè)進(jìn)度條控件,界面設(shè)計(jì)如圖。(5) 在ProgBar.h添加如下代碼:/聲明槽private slots: void on_start_clicked();/開(kāi)始 void on_up_clicked();/加速 void on_down_clicked()
4、;/減速 void on_stop_clicked();/停止 void on_Close_clicked();/關(guān)閉signals: void sendValue(int);/傳值private: Ui:Widget *ui; int i;/變量 QTimer *timerStart;/開(kāi)始定時(shí)器 QTimer *timerUp;/加速定時(shí)器 QTimer *timerDown;/減速定時(shí)器 Dialog *dialog;/子對(duì)話框(6) 主界面類構(gòu)造函數(shù)中進(jìn)行成員變量的初始化。示例代碼如下:this->setFixedSize(width(),height(); ui->pro
5、gressBar->setValue(0);/初始值為0 ui->progressBar->setRange(0,MAXSIZE-1);/設(shè)置進(jìn)度條值的范圍 /紅底 ui->progressBar->setStyleSheet("QProgressBar:chunk background-color: rgb(255, 0, 0) "); timerStart=new QTimer(this); timerUp=new QTimer(this); timerDown=new QTimer(this); connect(timerStart,SI
6、GNAL(timeout(),this,SLOT(on_start_clicked(); connect(timerUp,SIGNAL(timeout(),this,SLOT(on_up_clicked(); connect(timerDown,SIGNAL(timeout(),this,SLOT(on_down_clicked(); i=0; dialog=new Dialog; connect(this,SIGNAL(sendValue(int),dialog,SLOT(getValue(int); dialog->show(); i=0; ui->start->setE
7、nabled(true); ui->up->setEnabled(false); ui->down->setEnabled(false); ui->stop->setEnabled(false);(7) 分別為五個(gè)PushButton添加信號(hào)對(duì)應(yīng)的槽(類似消息響應(yīng)函數(shù)),代碼如下:/開(kāi)始void Widget:on_start_clicked() ui->start->setEnabled(false); ui->up->setEnabled(true); ui->down->setEnabled(true); ui-&g
8、t;stop->setEnabled(true); timerStart->start(1); timerUp->stop(); timerDown->stop(); if(i >=MAXSIZE-1 ) ui->progressBar->setValue(MAXSIZE-1); emit sendValue(MAXSIZE-1); timerStart->stop(); QMessageBox:information(this,tr("提示"),tr("結(jié)束!"),QMessageBox:Ok|QMess
9、ageBox:Default); return; /賦值 ui->progressBar->setValue(i); i+=I; emit sendValue(i); ui->label_2->setText("4");/加速void Widget:on_up_clicked() timerUp->start(1); timerDown->stop(); timerStart->stop(); if(i >=MAXSIZE-1 ) ui->progressBar->setValue(MAXSIZE-1); emit
10、 sendValue(MAXSIZE-1); timerUp->stop(); QMessageBox:information(this,tr("提示"),tr("結(jié)束!"),QMessageBox:Ok|QMessageBox:Default); return; ui->progressBar->setValue(i); i+=UP; emit sendValue(i); ui->label_2->setText("7");/減速void Widget:on_down_clicked() timerDo
11、wn->start(1); timerStart->stop(); timerUp->stop(); if(i >=MAXSIZE-1 ) ui->progressBar->setValue(MAXSIZE-1); emit sendValue(MAXSIZE-1); timerDown->stop(); QMessageBox:information(this,tr("提示"),tr("結(jié)束!"),QMessageBox:Ok|QMessageBox:Default); return; ui->progr
12、essBar->setValue(i); i+=DOWN; emit sendValue(i); ui->label_2->setText("1");/停止void Widget:on_stop_clicked() ui->start->setEnabled(true); ui->up->setEnabled(false); ui->down->setEnabled(false); ui->stop->setEnabled(false); timerStart->stop(); timerDown->stop(); timerUp->stop(); ui->label_2->setText("0");/關(guān)閉void Widget:on_Close_clicked() this->close(); dialog->close();5. 結(jié)果截圖初始界面開(kāi)始界面加速界面減速界面6. 回答思考題(1) 為了
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 房屋泡水改造方案(3篇)
- 農(nóng)村機(jī)井改造方案(3篇)
- 透水混凝土配送方案(3篇)
- 民房水電鋪設(shè)方案(3篇)
- 河道干旱清淤方案(3篇)
- 廠房監(jiān)控安裝方案(3篇)
- 影樓活動(dòng)策劃方案(3篇)
- 供電公司-合并方案(3篇)
- 化工項(xiàng)目甲方管理制度
- 客房房門維修方案(3篇)
- 網(wǎng)絡(luò)安全技術(shù)實(shí)操技能考核試題及答案
- 國(guó)家保安員模擬試題及答案(附解析)
- DB31/T 1402-2023養(yǎng)老機(jī)構(gòu)認(rèn)知障礙照護(hù)單元設(shè)置和服務(wù)要求
- 湖南省長(zhǎng)沙市師大附中教育集團(tuán)2025年數(shù)學(xué)七下期末綜合測(cè)試試題含解析
- 2025年Web應(yīng)用安全試題及答案解析
- 血管通路介入治療
- 上海市同濟(jì)大學(xué)第二附屬中學(xué)2024-2025學(xué)年八年級(jí)下冊(cè)期末物理試卷
- 2025屆江蘇省南京市、鹽城市高三下學(xué)期3月一模政治試題 含解析
- 2025年液壓馬達(dá)開(kāi)發(fā)行業(yè)深度研究報(bào)告
- 高速公路養(yǎng)護(hù)安全培訓(xùn)課件
- 2024北森圖形推理題
評(píng)論
0/150
提交評(píng)論