可以使用MSVC2015 64位
This commit is contained in:
+61
-8
@@ -12,6 +12,13 @@ Cockpit::Cockpit(QWidget *parent): QWidget(parent)
|
||||
// setMouseTracking(true);
|
||||
//leftladder = new LeftLadder(this);
|
||||
|
||||
|
||||
//颜色初始化
|
||||
m_NormalColor = QColor("#00FF00");
|
||||
m_NoticeColor = QColor("#FF8C00");
|
||||
m_WarningColor = QColor("#FF0000");
|
||||
|
||||
|
||||
//GPS初始化
|
||||
m_GPS.fixtype = 0;
|
||||
m_GPS.svn = 0;
|
||||
@@ -38,6 +45,7 @@ Cockpit::Cockpit(QWidget *parent): QWidget(parent)
|
||||
m_Attitude.yaw = 0;
|
||||
|
||||
m_Attitude.airspeed = 0;//空速
|
||||
m_Attitude.AirspeedFlag = 2;//i c t
|
||||
m_Attitude.horizontalspeed = 0;//侧滑速度
|
||||
m_Attitude.verticalspeed = 0;//爬升速度
|
||||
|
||||
@@ -848,7 +856,36 @@ void Cockpit::drawLeftScale(QPainter *painter)
|
||||
painter->setBrush(QColor("#000000"));
|
||||
painter->drawRect(0,600,300,100);
|
||||
|
||||
painter->drawText(QRect(20,600,280,100),Qt::AlignLeft|Qt::AlignVCenter,"TAS " + QString::number(m_Attitude.airspeed,'f',0));
|
||||
|
||||
QString AS_flag = "I";
|
||||
|
||||
switch (m_Attitude.AirspeedFlag) {
|
||||
default:
|
||||
case 0:
|
||||
painter->drawText(QRect(20,600,280,100),Qt::AlignLeft|Qt::AlignVCenter,"IAS " + QString::number(m_Attitude.airspeed,'f',0));
|
||||
AS_flag = "I";
|
||||
ePen.setColor(m_NoticeColor);
|
||||
break;
|
||||
case 1:
|
||||
painter->drawText(QRect(20,600,280,100),Qt::AlignLeft|Qt::AlignVCenter,"CAS " + QString::number(m_Attitude.airspeed,'f',0));
|
||||
AS_flag = "C";
|
||||
ePen.setColor(m_NoticeColor);
|
||||
break;
|
||||
case 2:
|
||||
painter->drawText(QRect(20,600,280,100),Qt::AlignLeft|Qt::AlignVCenter,"TAS " + QString::number(m_Attitude.airspeed,'f',0));
|
||||
AS_flag = "T";
|
||||
ePen.setColor(m_NormalColor);
|
||||
break;
|
||||
}
|
||||
|
||||
ePen.setWidth(15);
|
||||
font.setPixelSize(100);
|
||||
font.setBold(true);//加粗
|
||||
|
||||
painter->setPen(ePen);
|
||||
painter->setFont(font);
|
||||
|
||||
painter->drawText(QRect(320,600,90,100),Qt::AlignHCenter|Qt::AlignVCenter,AS_flag);
|
||||
|
||||
painter->restore();
|
||||
|
||||
@@ -1195,7 +1232,7 @@ void Cockpit::drawVRate(QPainter *painter)
|
||||
QFont font;
|
||||
//画一个半透明的小方块
|
||||
painter->save();
|
||||
painter->setOpacity(0.3f);
|
||||
painter->setOpacity(0.3);
|
||||
|
||||
static const QPointF Backpoints[10] = {
|
||||
QPointF( 80,-150),
|
||||
@@ -1268,15 +1305,13 @@ void Cockpit::drawVRate(QPainter *painter)
|
||||
ePen.setColor(m_CurrentColor);
|
||||
painter->setPen(ePen);
|
||||
|
||||
float cur_y = ((m_Attitude.verticalspeed<0)?(1):(-1))*log10(qAbs(m_Attitude.verticalspeed) + 1) * 500;
|
||||
qreal cur_y = ((m_Attitude.verticalspeed<0)?(1):(-1))*log10(qAbs(m_Attitude.verticalspeed) + 1) * 500;
|
||||
|
||||
cur_y = (cur_y < -440)?(-440):((cur_y>440)?(440):(cur_y));//位置限幅
|
||||
|
||||
painter->drawLine(0,cur_y,20,cur_y);
|
||||
painter->drawLine(20,cur_y,200,0);
|
||||
|
||||
//qDebug() << m_Attitude.verticalspeed;
|
||||
|
||||
painter->restore();//画当前值结束
|
||||
|
||||
//画当前值打补丁
|
||||
@@ -1293,7 +1328,7 @@ void Cockpit::drawVRate(QPainter *painter)
|
||||
//画目标标尺
|
||||
painter->save();
|
||||
|
||||
float tar_y = ((m_Target.verticalspeed<0)?(1):(-1))*log10(qAbs(m_Target.verticalspeed) + 1) * 500;
|
||||
qreal tar_y = ((m_Target.verticalspeed<0)?(1):(-1))*log10(qAbs(m_Target.verticalspeed) + 1) * 500;
|
||||
|
||||
tar_y = (tar_y < -440)?(-440):((tar_y>440)?(440):(tar_y));//位置限幅
|
||||
|
||||
@@ -1333,6 +1368,25 @@ void Cockpit::drawVRate(QPainter *painter)
|
||||
painter->restore();//画目标值结束
|
||||
|
||||
|
||||
//画当前值
|
||||
painter->save();
|
||||
|
||||
painter->translate(80,0);//+1是应为log 1= 0,偏移0的位置
|
||||
|
||||
ePen.setWidth(8);
|
||||
ePen.setColor(m_CurrentColor);
|
||||
font.setPointSize(50);
|
||||
font.setWeight(QFont::ExtraLight);
|
||||
font.setFamily("Arial");//非衬线
|
||||
|
||||
painter->setPen(ePen);
|
||||
painter->setFont(font);
|
||||
//在下方显示当前值
|
||||
painter->drawText(QRect(-80,500,120,60),Qt::AlignHCenter|Qt::AlignLeft,QString::number(m_Attitude.verticalspeed,'f',(qAbs(m_Attitude.verticalspeed) < 10.0)?(1):(0)));
|
||||
|
||||
painter->restore();//画当前值结束
|
||||
|
||||
|
||||
|
||||
painter->restore();//全部结束
|
||||
}
|
||||
@@ -1350,12 +1404,11 @@ void Cockpit::drawYawScale(QPainter *painter)
|
||||
|
||||
font.setWeight(QFont::ExtraLight);
|
||||
font.setFamily("Arial");//非衬线
|
||||
|
||||
painter->translate(0,1050);
|
||||
|
||||
painter->save();
|
||||
//画一个半透明的基础圆
|
||||
painter->setOpacity(0.3f);
|
||||
painter->setOpacity(0.3);
|
||||
ePen.setColor(QColor("#7A7A7A"));
|
||||
painter->setBrush(QColor("#7A7A7A"));
|
||||
painter->drawEllipse(-500,-500,1000,1000);
|
||||
|
||||
Reference in New Issue
Block a user