91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 5KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2021-05-21
  • 語言: 其他
  • 標簽: Qt??聲波??

資源簡介

基于Qt的聲波圖形界面的動態(tài)繪制,底層使用圖片遞增繪制,內(nèi)存使用最少,效率最高。

資源截圖

代碼片段和文件信息

#include?“CSoundWave.h“
#include?
#include?
#include?ylePainter>
#include?
#include?
CSoundWave::CSoundWave(const?unsigned?int?nTickTime/*設置跳動頻率毫秒*/?const?unsigned?int?&nRedrawSpacesQWidget?*parent)?:
????QWidget(parent)
{
????m_nTickTime?=?nTickTime;
????m_nSpaces?=?nRedrawSpaces;
????m_bInited?=?false;
????m_bAutoWave?=?false;

????m_brush?=?QBrush(Qt::white);
????m_brushBackGround=?QBrush(Qt::black);
????m_drawTimer?=?new?QTimer;
????connect(m_drawTimer?SIGNAL(timeout())thisSLOT(newLine()));
????m_nMaxValue?=?1000;
????m_backColor?=QColor(888888);
????m_penColor?=?QColor(33?3333);
}

void?CSoundWave::enableAutoWave(bool?bAutoWave)
{
????if?(bAutoWave)
????{
????????m_drawTimer->start(m_nTickTime);
????}
????else
????{
????????m_drawTimer->stop();
????}
}

void?CSoundWave::setTickParamers(const?unsigned?int?&nTickTime/*設置跳動頻率*/?const?unsigned?int?&nRedrawSpaces/*設置間隙,聲波中采用1個像素*/)
{

}

void?CSoundWave::setMaxValue(const?unsigned?int&??nMaxValue)
{
????m_nMaxValue?=?nMaxValue;
}
void?CSoundWave::addNewSoundValue(const?unsigned?int&??nNewSound)

{
????_addNewSound(nNewSound?%?m_nMaxValue);
}
void?CSoundWave::newLine()
{
????_addNewSound(qrand()?%?m_nMaxValue);
}

void?CSoundWave::_addNewSound(const?unsigned?int?&value)
{
????QRect?rc?=?this->rect();
????unsigned?int?nHeight?=?rc.height()?*?value?/(float)m_nMaxValue;
????unsigned?int?nStartY?=?(rc.height()?-?nHeight)?/?2;
????if?(!m_bInited)
????{
????????waveImg?=?QPixmap(rc.width()?rc.height());
????????waveImg.fill(m_backColor);
????????m_bInited?=?true;
????}
????QPainter?painter2(&waveImg);
????painter2.setBrush(m_brush);
????painter2.setPen(m_penColor);

????QPainter?painterTemp(&waveImgTemp);
????painterTemp.setBrush(m_brush);
????painterTemp.setPen(m_penColor);
????painterTemp.fillRect(rect()?m_backColor);

????QRect?newRc?=?waveImg.rect();

????painterTemp.drawPixmap(QRect(00?newRc.width()?-?m_nSpaces?newRc.height())?waveImg?QRect(?m_nSpaces0?newRc.width()-?m_nSpaces?newRc.height()));

????painterTemp.drawLine(QPoint(rc.topRight().x()?rc.topRight().y()?+?nStartY)QPoint(rc.bottomRight().x()?rc.bottomRight().y()?-?nStartY));

????painter2.fillRect(rect()?m_backColor);
?????painter2.drawPixmap(QRect(00?newRc.width()?newRc.height())?waveImgTemp?QRect(?00?newRc.width()?newRc.height()));

????update();
}

void?CSoundWave::paintEvent(QPaintEvent?*ev)
{
????QRect?rc?=?this->rect();
????if?(!m_bInited)
????{
????????waveImg?=?QPixmap(rc.width()?rc.height());
????????waveImg.fill(m_backColor);
????????waveImgTemp?=?QPixmap(rc.width()?rc.height());
????????waveImgTemp.fill(m_backColor);
????????m_bInited?=?true;
????}

????QPainter?painter(this);
????painter.drawPixmap(00?waveImg);
}

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2016-03-14?11:56??CSoundWaveTest\
?????文件????????2912??2016-03-14?14:06??CSoundWaveTest\CSoundWave.cpp
?????文件????????1280??2016-03-14?14:02??CSoundWaveTest\CSoundWave.h
?????文件?????????400??2016-03-14?11:53??CSoundWaveTest\CSoundWaveTest.pro
?????文件???????18303??2016-03-14?11:56??CSoundWaveTest\CSoundWaveTest.pro.user
?????文件?????????183??2016-03-10?15:04??CSoundWaveTest\main.cpp
?????文件?????????382??2016-03-14?11:53??CSoundWaveTest\mainwindow.cpp
?????文件?????????288??2016-03-14?09:53??CSoundWaveTest\mainwindow.h

評論

共有 條評論