下載本文檔
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第Qt實(shí)現(xiàn)字幕滾動(dòng)效果的示例代碼目錄一、項(xiàng)目介紹二、項(xiàng)目基本配置三、UI界面設(shè)計(jì)四、主程序?qū)崿F(xiàn)4.1widget.h頭文件4.2widget.cpp源文件五、效果演示
一、項(xiàng)目介紹
利用QTimer實(shí)現(xiàn)字幕滾動(dòng)功能,可以實(shí)現(xiàn)自行更改文本內(nèi)容、自適應(yīng)文本大小、自由調(diào)整速度等功能。
二、項(xiàng)目基本配置
新建一個(gè)Qt案例,項(xiàng)目名稱(chēng)為T(mén)extScroll,基類(lèi)選擇QWidget,取消創(chuàng)建UI界面復(fù)選框的選中狀態(tài),完成項(xiàng)目創(chuàng)建。
三、UI界面設(shè)計(jì)
無(wú)UI界面
四、主程序?qū)崿F(xiàn)
4.1widget.h頭文件
聲明私有變量和事件:
private:
QTimer*timer;//時(shí)間定時(shí)器
QRgbtextColor;//文本顏色
QStringm_text;//文本內(nèi)容
QStringm_showText;//顯示
QFontfont;//字體
intm_ms;
intm_pixelSize;
intm_moveOffset;
intm_moveSize;
intblankSuffix;//空白后綴,值越大空白后綴越多
floatspeed;//滑動(dòng)速度,值越大越快
voidpaintEvent(QPaintEvent*event);
voidresizeEvent(QResizeEvent*event);
聲明函數(shù)和槽函數(shù):
public:
voidsetDelay(intms,intpixelSize);//設(shè)置滾動(dòng)延遲,多少ms滾動(dòng)多少像素點(diǎn)
voidsetText(QStringtext,QRgbtextColor,floatspeed=0.70,intblankSuffix=20);//設(shè)置字體,調(diào)用該函數(shù)后,將會(huì)自動(dòng)啟動(dòng)定時(shí)器來(lái)滾動(dòng)字幕
//voidrestart();
publicslots:
voidtimeOut();
4.2widget.cpp源文件
主函數(shù)內(nèi)容如下:
resize(600,100);//調(diào)整窗口大小
timer=newQTimer(this);//創(chuàng)建定時(shí)器
connect(timer,SIGNAL(timeout()),this,SLOT(timeOut()));
QStringtext="人生百相,世態(tài)萬(wàn)千,悲悲喜喜,才構(gòu)成了人生的完美;謀事在人,成事在天。"
"做過(guò)的事不要后悔。經(jīng)??梢钥吹讲簧偃俗栽棺园?
"為曾經(jīng)做過(guò)的錯(cuò)事后悔不已,為過(guò)去的事而消沉,為過(guò)去的事而落魄。世上永遠(yuǎn)沒(méi)有后悔藥。";
QRgbtextColor=qRgb(67,142,219);//字體顏色——藍(lán)色
floatspeed=0.4;
intblankSuffix=0;
setText(text,textColor,speed,blankSuffix);
timeOut()槽函數(shù):
//槽函數(shù)
voidWidget::timeOut(){
qDebug()m_moveOffsetm_moveSize;
m_moveOffset+=m_pixelSize;
if(m_moveOffsetm_moveSize)
m_moveOffset=0;
update();
調(diào)整窗口大小resizeEvent事件:
voidWidget::resizeEvent(QResizeEvent*event)
font.setPixelSize(event-size().height()*0.75);//字體大小(這里設(shè)置為窗口高度的0.75倍)
m_showText=m_text;
QFontMetricsmetrics(font);
intchar_w=metrics.horizontalAdvance("");//Qt5.11之后,之前請(qǐng)用width()
setDelay(30,char_w*speed);//滾動(dòng)延時(shí)
intblankLine=width()/char_w+1;
for(inti=0;iblankLine;i++)
m_showText.insert(0,"");//開(kāi)頭插入blankLine個(gè)空格
m_moveSize=metrics.horizontalAdvance(m_showText)+blankSuffix;
m_moveOffset=0;
update();
重寫(xiě)繪制事件paintEvent:
//繪圖事件
voidWidget::paintEvent(QPaintEvent*event)
QPainterpainter(this);
painter.setFont(font);//設(shè)置字體
painter.setPen(QColor(120,120,120));//設(shè)置畫(huà)筆顏色——灰色
painter.drawRect(QRect(0,0,width()-1,height()-1));//主窗口繪制矩形
painter.setPen(QColor(textColor));//文字顏色
painter.drawText(QRect(-m_moveOffset,0,width()-1+m_moveOffset,height()-1),
Qt::AlignVCenter|Qt::AlignLeft,m_showText);//繪制文字,水平居左垂直居中
定義滾動(dòng)延遲函數(shù):
//設(shè)置滾動(dòng)延遲,多少ms滾動(dòng)多少像素點(diǎn)pixelSize
voidWidget::setDelay(intms,intpixelSize)
this-m_ms=ms;
this-m_pixelSize=pixelSize;
設(shè)置字體相關(guān)信息:
//設(shè)置字體相關(guān)信息(text:字體內(nèi)容,textColor:顏色,speed:字體滾動(dòng)速度,blankSuffix:留白大小)
voidWidget::setText(QStringtext,QRgbtextColor,floatspeed,intblankSuffix)
this-blankSuffix=blankSuffix;
this-speed=speed;
font.setFamily("MicrosoftYahei");//字體樣式——微軟雅黑
font.setPixelSize(height()*0.0001);//字體像素大小
this-textColor=textColor;//字體顏色
m_text=text;//文本內(nèi)容
m_showText=m_text;//顯示內(nèi)容
//計(jì)算字符大小
QFontMetricsmetrics(font);
intchar_w=metrics.horizontalAdvance("");//Qt5.11之后,之前請(qǐng)用width()
se
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司生產(chǎn)發(fā)票管理制度
- 公司生產(chǎn)技術(shù)工藝管理制度
- 糧食烘干房安全生產(chǎn)制度
- 林業(yè)作業(yè)安全生產(chǎn)制度
- 各公司會(huì)議培訓(xùn)費(fèi)制度
- 鏈家新人培訓(xùn)淘汰制度
- 倉(cāng)房出租制度規(guī)范
- 充電站培訓(xùn)管理制度
- 煤礦培訓(xùn)抽考制度
- 工廠(chǎng)新員工崗前培訓(xùn)制度
- 2026中國(guó)數(shù)字化口腔醫(yī)療設(shè)備市場(chǎng)滲透率與增長(zhǎng)動(dòng)力研究報(bào)告
- 2025中證信息技術(shù)服務(wù)有限責(zé)任公司招聘16人筆試參考題庫(kù)附答案
- 建筑工程決算編制標(biāo)準(zhǔn)及實(shí)例
- 安徽省江淮十校2025年高二數(shù)學(xué)第一學(xué)期期末質(zhì)量檢測(cè)試題含解析
- 電力工程項(xiàng)目預(yù)算審核流程
- GB/T 14748-2025兒童呵護(hù)用品安全兒童推車(chē)
- 蒸汽管道-應(yīng)急預(yù)案
- 疊合板專(zhuān)項(xiàng)施工方案(完整版)
- 造價(jià)咨詢(xún)溝通和協(xié)調(diào)方案(3篇)
- 耐蝕襯膠工專(zhuān)項(xiàng)考核試卷及答案
- 水利工程單元工程施工質(zhì)量驗(yàn)收常用表格(建筑工程)單元工程施工質(zhì)量驗(yàn)收表
評(píng)論
0/150
提交評(píng)論