diff options
| author | Stanislaw Halik <sthalik@misaki.pl> | 2021-12-19 18:19:38 +0100 | 
|---|---|---|
| committer | Stanislaw Halik <sthalik@misaki.pl> | 2021-12-19 18:19:56 +0100 | 
| commit | a6d29f0200096c6be6099427c121e2ba6768125a (patch) | |
| tree | 92ec1bb6a6ce62ada62c75574de940b84003f8fc | |
| parent | 17cb2a6d77b214df365504f8479bd1c60333c20c (diff) | |
pose-widget: workaround auto fill background artifacts
Must draw the widget on our own as having it resized as part of a
complex layout causes the top of the widget to get filled with garbage.
| -rw-r--r-- | pose-widget/pose-widget.cpp | 24 | 
1 files changed, 11 insertions, 13 deletions
| diff --git a/pose-widget/pose-widget.cpp b/pose-widget/pose-widget.cpp index 324cc639..a7a8cd4c 100644 --- a/pose-widget/pose-widget.cpp +++ b/pose-widget/pose-widget.cpp @@ -65,19 +65,6 @@ void pose_widget::resizeEvent(QResizeEvent *event)      float w = event->size().width();      float h = event->size().height(); -    // draw axes -    QImage background(QImage(w, h, QImage::Format_ARGB32)); -    QPainter p(&background); -    p.setPen(QPen(Qt::gray, 1, Qt::SolidLine)); -    p.drawLine(0.5*w,   0  , 0.5*w,   h  ); -    p.drawLine(  0  , 0.5*h,   w  , 0.5*h); - -    // set AutoFillBackground -    QPalette palette; -    palette.setBrush(this->backgroundRole(), QBrush(background)); -    setPalette(palette); -    setAutoFillBackground(true); -      // move the mirror checkbox in the lower right corner of the widget      mirror.setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);      mirror.move(w - mirror.width(), h - mirror.height()); @@ -100,6 +87,17 @@ void pose_widget::paintEvent(QPaintEvent*)      p.setRenderHint(QPainter::Antialiasing, true);      #endif +    { +        p.fillRect(rect(), palette().brush(backgroundRole())); +        // draw axes +        p.save(); +        p.setPen(QPen(Qt::gray, 1, Qt::SolidLine)); +        int w = width(), h = height(); +        p.drawLine(w/2,   0, w/2, h); +        p.drawLine(  0, h/2, w,   h/2); +        p.restore(); +    } +      // check mirror state      if   (mirror.checkState() == Qt::Checked) x = -x;      else { yaw = -yaw; roll = -roll; } | 
