diff --git a/Cockpit/Cockpit.cpp b/Cockpit/Cockpit.cpp index e9f40d2..9d38627 100644 --- a/Cockpit/Cockpit.cpp +++ b/Cockpit/Cockpit.cpp @@ -11,7 +11,7 @@ Cockpit::Cockpit(QWidget *parent): QWidget(parent) - leftladder = new LeftLadder(this); + //leftladder = new LeftLadder(this); //GPS初始化 m_GPS.fixtype = 0; @@ -197,7 +197,7 @@ void Cockpit::setPressureAltitude(double Altitude) void Cockpit::setAirSpeed(double speed) { - m_Attitude.airspeed = speed; + m_Attitude.airspeed = speed; update(); } @@ -560,6 +560,7 @@ void Cockpit::drawYawScale(QPainter *painter) //画左刻度尺 用单独的控件最容易解决 void Cockpit::drawLeftScale(QPainter *painter) { + //leftladder->setGeometry(0,-600,300,1200); painter->save(); @@ -695,23 +696,40 @@ void Cockpit::drawLeftScale(QPainter *painter) qDebug() << Unit; - for(int i = -2 - Unit;i<(2 - Unit);i+=1) + //UnitText.clear(); + + + int count = 1; + for(int i = -1.5 - Unit;i<(1.5 - Unit);i+=1) { QString strText = QString::number(((-i < 0)?(-i+10):((-i>=10)?(-i-10):(-i)))); //设置当前字体 painter->save(); - QPen ePen; - QFont font; ePen.setColor(m_CentreLineColor); ePen.setWidth(15); font.setPointSize(90); painter->setPen(ePen); painter->setFont(font); - painter->drawText(QRect(200,(i + Unit) * 100 - 50,100,90),Qt::AlignVCenter|Qt::AlignLeft, strText); + painter->translate(200,(i + Unit) * 100 - 50); + //偏移坐标需要修正,现在画的时候从左上开始,因此,总有一个会显示不出来 + + switch (count) { + case 1: + painter->drawText(QRect(0,0,100,90 *(Decimal - 0.5)),Qt::AlignVCenter|Qt::AlignLeft, strText); + break; + case 2: + painter->drawText(QRect(0,0,100,90),Qt::AlignVCenter|Qt::AlignLeft, strText); + break; + case 3: + painter->drawText(QRect(0,0,100,90 *(Decimal + 0.5)),Qt::AlignVCenter|Qt::AlignLeft, strText); + break; + } + + count++; @@ -719,15 +737,10 @@ void Cockpit::drawLeftScale(QPainter *painter) painter->restore(); } - painter->restore(); - - - painter->restore(); - } diff --git a/Cockpit/leftladder.cpp b/Cockpit/leftladder.cpp index 8653aed..224b683 100644 --- a/Cockpit/leftladder.cpp +++ b/Cockpit/leftladder.cpp @@ -57,9 +57,9 @@ void LeftLadder::paintEvent(QPaintEvent *) QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing); /* 使用反锯齿(如果可用) */ - //painter.translate(width() / 2, 2 * height() / 5); /* 坐标变换为窗体中心 */ + painter.translate(0, height() / 2); /* 坐标变换为窗体中心 */ int side = qMin(width(), height()); /* 这一句决定了这个模块只能是方形 */ - painter.scale(side / 2000.0, side / 2000.0); /* 比例缩放 */ + painter.scale(side / 1000.0, side / 1000.0); /* 比例缩放 */ painter.setPen(Qt::NoPen); @@ -76,7 +76,7 @@ void LeftLadder::drawLeftScale(QPainter *painter) painter->save(); //平移坐标 - painter->translate(-1100,0); + //painter->translate(0,0); QPen ePen; QFont font;