LINUX.ORG.RU

Полупрозрачный фон рамки zoomer'a

 ,


0

1

Здравствуйте, не подскажете почему перегрузка drawRubberBand класса QwtPlotZoomer (способ, который я нашёл на qtcentr) не закрашивает фон рамки обведения, при этом сама перегрузка сделана корректно (т.е. если в ней задать другой цвет ручки, то линия рамки будет перекрашиваться).

virtual void drawRubberBand( QPainter *painter ) const
{
    if ( dynamic_cast< const QBitmap *>( painter->device() ) )
    {
        painter->setBrush( Qt::color1 );
    }
    else
    {
        QColor c( Qt::darkBlue );
        c.setAlpha( 60 );
 
        painter->setBrush( c );
    }
 
    QwtPlotZoomer::drawRubberBand( painter );
}



Последнее исправление: ROCKSTAR (всего исправлений: 1)

Потому что QwtPicker::drawRubberBand рисует линии, но не закрашивает области. Закрашивать нужную область тебе надо самому.

Begemoth ★★★★★
()
Ответ на: комментарий от Begemoth

Не подскажете, как это можно реализовать? Пока мои попытки переопределения различных процедур не приносят успеха).

Моя лучшая попытка, которая также ничего не изменила:

virtual void drawRubberBand( QPainter *painter ) const
    {
        QColor bg ( Qt::white );
        bg.setAlpha( 200 );
        painter->setBrush( QBrush ( bg ) );
        QPolygon pa = QwtPicker::selection();
        QRect rect = QRect(pa.first(), pa.last()).normalized();
        painter->fillRect(rect,bg);
        QwtPainter::drawRect( painter, rect );
    }

ROCKSTAR
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.