Important: Please read the Qt Code of Conduct -

Using QWidget with DirectX

  • Hello,

    I have an application running on Windows 7 using Qt 4.8.6, which has been updated from Qt 3.3.6 just recently. There are QWidgets receving their background from DirectX, i.e. the whole widget is filled by DirectX output. This works fine with the following widget settings:

    • Attribute Qt::WA_NoSystemBackground is set
    • Overloaded widget method QPaintEngine* paintEngine() { return nulptr; }

    Such a "DirectX" widgets also contain visual controls in form of child widgets which can be moved freely within the parent widget. I have observed that child widgets do not receive paint events to update their visual contents as one would expect. For instance, when I pick a child widget A with the mouse and move it over some sibling widget B, the B widget does not get repainted properly, i.e. it has visual artefacts. This used to work with Qt3.

    Is there a way to configure QWidgets to use DirectX and to have child widgets properly receive paint event updates?

Log in to reply