void MainWindow::LoadGages(void)
{
QImage sb_img
(":/new/prefix1/spb");
QImage tb_img
(":/new/prefix1/tkb");
QImage nd_img
(":/new/prefix1/nd");
QImage cn_img
(":/new/prefix1/cen");
QImage ov_img
(":/new/prefix1/ov");
sb = sb.fromImage(sb_img.scaled(450,450,Qt::IgnoreAspectRatio,Qt::SmoothTransformation));
tb = tb.fromImage(tb_img.scaled(450,450,Qt::IgnoreAspectRatio,Qt::SmoothTransformation));
nd = nd.fromImage(nd_img.scaled(146,115,Qt::IgnoreAspectRatio,Qt::SmoothTransformation));
cn = cn.fromImage(cn_img.scaled(41,41,Qt::IgnoreAspectRatio,Qt::SmoothTransformation));
ov = ov.fromImage(ov_img.scaled(400,325,Qt::IgnoreAspectRatio,Qt::SmoothTransformation));
speed=103;
takho=103;
qreal alpha=0.0;
for(qreal roty=270;roty<=360;roty+=5)
{
QPixmap Left
=drawGauge
(sb,speed,
450,
0,
0,roty,
225,
225,alpha
);
QPixmap Right
=drawGauge
(tb,speed,
450,
0,
0,
-roty,
225,
225,alpha
);
alpha+=0.15;
ui->label->setPixmap(drawBoth(Left,Right));
}
for(qreal val=103;val<=370;val+=5)
{
QPixmap Left
=drawGauge
(sb,val,
450,
0,
0,
0,
0,
0,
1.0);
QPixmap Right
=drawGauge
(tb,val,
450,
0,
0,
0,
0,
0,
1.0);
ui->label->setPixmap(drawBoth(Left,Right));
}
for(qreal val=370;val>=103;val-=5)
{
QPixmap Left
=drawGauge
(sb,val,
450,
0,
0,
0,
0,
0,
1.0);
QPixmap Right
=drawGauge
(tb,val,
450,
0,
0,
0,
0,
0,
1.0);
ui->label->setPixmap(drawBoth(Left,Right));
}
QPixmap Left
=drawGauge
(sb,
103,
450,
0,
0,
0,
0,
0,
1.0);
QPixmap Right
=drawGauge
(tb,
103,
450,
0,
0,
0,
0,
0,
1.0);
ui->label->setPixmap(drawBoth(Left,Right));
//timerId=startTimer(1);
update();
}
{
win.fill(Qt::transparent);
QRect winR
(ui
->label
->x
(),ui
->label
->y
(),ui
->label
->width
(),ui
->label
->height
());
p.begin(&win);
p.
setRenderHint(QPainter::Antialiasing);
p.
setRenderHint(QPainter::SmoothPixmapTransform);
p.
setRenderHint(QPainter::HighQualityAntialiasing);
p.drawPixmap(10,25,g1);
p.drawPixmap(winR.x()+winR.width()-450-75,25,g2);
p.end();
return win;
}
QPixmap MainWindow
::drawGauge(QPixmap Gauge,qreal value,
int scale,qreal z,qreal x,qreal y,qreal tx,qreal ty,qreal alpha
) {
win.fill(Qt::transparent);
p.begin(&win);
p.
setRenderHint(QPainter::Antialiasing);
p.
setRenderHint(QPainter::SmoothPixmapTransform);
p.
setRenderHint(QPainter::HighQualityAntialiasing);
p.drawPixmap(0,0,Gauge);
p.setTransform(GetRotation(value,Qt::ZAxis,(450/2)+5,(450/2)+5));
p.setViewport(p.viewport().x()-5,p.viewport().y()-5,p.viewport().width(),p.viewport().height());
p.drawPixmap(450/2,450/2,nd);
p.resetMatrix();
p.drawPixmap((450/2)-20,(450/2)-20,cn);
p.setOpacity(0.2);
p.drawPixmap(25,25,ov);
p.end();
win.fill(Qt::transparent);
p.begin(&win);
p.
setRenderHint(QPainter::Antialiasing);
p.
setRenderHint(QPainter::SmoothPixmapTransform);
p.
setRenderHint(QPainter::HighQualityAntialiasing);
p.setTransform(GetRotation(z,Qt::ZAxis,tx,ty));
p.drawPixmap(0,0,gauge);
p.end();
gauge=win;
win.fill(Qt::transparent);
p.begin(&win);
p.
setRenderHint(QPainter::Antialiasing);
p.
setRenderHint(QPainter::SmoothPixmapTransform);
p.
setRenderHint(QPainter::HighQualityAntialiasing);
p.setTransform(GetRotation(x,Qt::XAxis,tx,ty));
p.drawPixmap(0,0,gauge);
p.end();
gauge=win;
win.fill(Qt::transparent);
p.begin(&win);
p.
setRenderHint(QPainter::Antialiasing);
p.
setRenderHint(QPainter::SmoothPixmapTransform);
p.
setRenderHint(QPainter::HighQualityAntialiasing);
p.setTransform(GetRotation(y,Qt::YAxis,tx,ty));
p.setOpacity(alpha);
p.drawPixmap(0,0,gauge);
p.end();
gauge=win;
win.fill(Qt::transparent);
p.begin(&win);
p.
setRenderHint(QPainter::Antialiasing);
p.
setRenderHint(QPainter::SmoothPixmapTransform);
p.
setRenderHint(QPainter::HighQualityAntialiasing);
p.setOpacity(alpha);
p.drawPixmap(0,0,gauge);
p.end();
QImage _retval
= win.
toImage();
QPixmap retval
= retval.
fromImage(_retval.
scaled(scale,scale,Qt
::IgnoreAspectRatio,Qt
::SmoothTransformation));
return retval;
}
QTransform MainWindow::GetRotation(qreal rotation,Qt::Axis axis,qreal dx,qreal dy)
{
QTransform qtr;
qtr.translate(dx,dy);
qtr.rotate(rotation,axis);
qtr.translate(-dx,-dy);
return qtr;
}
void MainWindow::LoadGages(void)
{
QImage sb_img(":/new/prefix1/spb");
QImage tb_img(":/new/prefix1/tkb");
QImage nd_img(":/new/prefix1/nd");
QImage cn_img(":/new/prefix1/cen");
QImage ov_img(":/new/prefix1/ov");
sb = sb.fromImage(sb_img.scaled(450,450,Qt::IgnoreAspectRatio,Qt::SmoothTransformation));
tb = tb.fromImage(tb_img.scaled(450,450,Qt::IgnoreAspectRatio,Qt::SmoothTransformation));
nd = nd.fromImage(nd_img.scaled(146,115,Qt::IgnoreAspectRatio,Qt::SmoothTransformation));
cn = cn.fromImage(cn_img.scaled(41,41,Qt::IgnoreAspectRatio,Qt::SmoothTransformation));
ov = ov.fromImage(ov_img.scaled(400,325,Qt::IgnoreAspectRatio,Qt::SmoothTransformation));
speed=103;
takho=103;
qreal alpha=0.0;
for(qreal roty=270;roty<=360;roty+=5)
{
QPixmap Left=drawGauge(sb,speed,450,0,0,roty,225,225,alpha);
QPixmap Right=drawGauge(tb,speed,450,0,0,-roty,225,225,alpha);
alpha+=0.15;
ui->label->setPixmap(drawBoth(Left,Right));
QApplication::processEvents();
}
for(qreal val=103;val<=370;val+=5)
{
QPixmap Left=drawGauge(sb,val,450,0,0,0,0,0,1.0);
QPixmap Right=drawGauge(tb,val,450,0,0,0,0,0,1.0);
ui->label->setPixmap(drawBoth(Left,Right));
QApplication::processEvents();
}
for(qreal val=370;val>=103;val-=5)
{
QPixmap Left=drawGauge(sb,val,450,0,0,0,0,0,1.0);
QPixmap Right=drawGauge(tb,val,450,0,0,0,0,0,1.0);
ui->label->setPixmap(drawBoth(Left,Right));
QApplication::processEvents();
}
QPixmap Left=drawGauge(sb,103,450,0,0,0,0,0,1.0);
QPixmap Right=drawGauge(tb,103,450,0,0,0,0,0,1.0);
ui->label->setPixmap(drawBoth(Left,Right));
//timerId=startTimer(1);
update();
}
QPixmap MainWindow::drawBoth(QPixmap g1,QPixmap g2)
{
QPainter p;
QPixmap win(ui->label->size());
win.fill(Qt::transparent);
QRect winR(ui->label->x(),ui->label->y(),ui->label->width(),ui->label->height());
p.begin(&win);
p.setRenderHint(QPainter::Antialiasing);
p.setRenderHint(QPainter::SmoothPixmapTransform);
p.setRenderHint(QPainter::HighQualityAntialiasing);
p.drawPixmap(10,25,g1);
p.drawPixmap(winR.x()+winR.width()-450-75,25,g2);
p.end();
return win;
}
QPixmap MainWindow::drawGauge(QPixmap Gauge,qreal value,int scale,qreal z,qreal x,qreal y,qreal tx,qreal ty,qreal alpha)
{
QPainter p;
QPixmap win(Gauge.size());
win.fill(Qt::transparent);
p.begin(&win);
p.setRenderHint(QPainter::Antialiasing);
p.setRenderHint(QPainter::SmoothPixmapTransform);
p.setRenderHint(QPainter::HighQualityAntialiasing);
p.drawPixmap(0,0,Gauge);
p.setTransform(GetRotation(value,Qt::ZAxis,(450/2)+5,(450/2)+5));
p.setViewport(p.viewport().x()-5,p.viewport().y()-5,p.viewport().width(),p.viewport().height());
p.drawPixmap(450/2,450/2,nd);
p.resetMatrix();
p.drawPixmap((450/2)-20,(450/2)-20,cn);
p.setOpacity(0.2);
p.drawPixmap(25,25,ov);
p.end();
QPixmap gauge=win;
win.fill(Qt::transparent);
p.begin(&win);
p.setRenderHint(QPainter::Antialiasing);
p.setRenderHint(QPainter::SmoothPixmapTransform);
p.setRenderHint(QPainter::HighQualityAntialiasing);
p.setTransform(GetRotation(z,Qt::ZAxis,tx,ty));
p.drawPixmap(0,0,gauge);
p.end();
gauge=win;
win.fill(Qt::transparent);
p.begin(&win);
p.setRenderHint(QPainter::Antialiasing);
p.setRenderHint(QPainter::SmoothPixmapTransform);
p.setRenderHint(QPainter::HighQualityAntialiasing);
p.setTransform(GetRotation(x,Qt::XAxis,tx,ty));
p.drawPixmap(0,0,gauge);
p.end();
gauge=win;
win.fill(Qt::transparent);
p.begin(&win);
p.setRenderHint(QPainter::Antialiasing);
p.setRenderHint(QPainter::SmoothPixmapTransform);
p.setRenderHint(QPainter::HighQualityAntialiasing);
p.setTransform(GetRotation(y,Qt::YAxis,tx,ty));
p.setOpacity(alpha);
p.drawPixmap(0,0,gauge);
p.end();
gauge=win;
win.fill(Qt::transparent);
p.begin(&win);
p.setRenderHint(QPainter::Antialiasing);
p.setRenderHint(QPainter::SmoothPixmapTransform);
p.setRenderHint(QPainter::HighQualityAntialiasing);
p.setOpacity(alpha);
p.drawPixmap(0,0,gauge);
p.end();
QImage _retval = win.toImage();
QPixmap retval = retval.fromImage(_retval.scaled(scale,scale,Qt::IgnoreAspectRatio,Qt::SmoothTransformation));
return retval;
}
QTransform MainWindow::GetRotation(qreal rotation,Qt::Axis axis,qreal dx,qreal dy)
{
QTransform qtr;
qtr.translate(dx,dy);
qtr.rotate(rotation,axis);
qtr.translate(-dx,-dy);
return qtr;
}
To copy to clipboard, switch view to plain text mode
Bookmarks