Important: Please read the Qt Code of Conduct -

Bug with QGraphicsDropShadowEffect when resizing

  • Hello everyone ...

    When I maximize my - in a layout arranged - QGraphicsWidget with a QGraphicsDropShadowEffect enabled effect, the "layout-manager" doesn't call the "paint" method of the child-elemets correct.

    I've 3 QGraphicsWidgets, each in a horizontal-QGraphicsLinearLayout, in one vertical QGraphicsLinearLayout.
    (1 col. - 3 rows)

    First row is a "MenuBar" with a QGraphicsDropShadowEffect enabled.
    2nd row is empty (std. QGraphicsWidget - no subclass)
    3rd row is a "Footer" with QGraphicsDropShadowEffect enabled.

    On maximizing, the first row (MenuBar) grows up 100% of width

    But the 3rd row does not ... only sometimes ... e.g when I "leaf" the window and come back

    I tried qDebug and it seems the "paint" method is no called correctly on maximizing ...

    What now?

  • My debug Output:

    bq. Geometry Header: QRectF(0,0 1022x150)
    Geometry Footer: QRectF(0,741 1022x25)

    Window will be maximized !
    Geometry Header: QRectF(0,0 1918x150)
    <-- here is the first gap ... now i'll "change the active window" and come back -->
    Geometry Header: QRectF(0,0 1918x150)
    Geometry Footer: QRectF(0,991 1918x25) // <-- Now the width is correct ...

    Geometry Header: QRectF(0,0 1918x150) // <--- Window-Changed
    Geometry Footer: QRectF(0,991 1918x25) // <--- Window-Changed

    Window will not be maximized!
    Geometry Header: QRectF(0,0 1022x150)
    <-- here is the gap again - the footer is to wide ... -->
    Geometry Header: QRectF(0,0 1022x150) // <-- after "active-window change repaint"
    Geometry Footer: QRectF(0,741 1022x25) // now it fits ...

    Someone any ideas?

Log in to reply