[Interest] qdialog behaviour and repaint issue on embedded

Christos Vassiladiotis cvassiladiotis at gmail.com
Wed Jan 15 16:16:06 CET 2014


hello,

​i’m in the process of “porting/adjusting” a pre-Qt Quick UI (just C++)
from desktop to an embedded platform.

the app had started on Qt 4.8.x and has now moved to Qt 5.0.2, which is the
Qt version used by the target linux embedded platform.

i’m still trying to absorb the notion of QPA’s and their reliance to
implementation plugins,
along with any documentation i could find on how the paint system works in
Qt 5.
i’m currently using the eglfs plugin for my needs.

the problem is that whenever a QDialog based widget pops up (e.g. .show or
.exec methods) in my app and after it gets dismissed, the background widget
(typically a QMainWindow) does not get repainted, i get just a grayed out
screen with no containing widgets (QPushButton’s, etc) visible.

i tried to call refresh to no avail, but repaint/resize calls *do* redraw
the interface,
but thereafter no other repainting takes place, although the underlying
widgets receive mouse events (i can tell from the app’s log).
changing the derived the dialog boxes to inherit from QFrame instead of
QDialog works (as in no repaint issues),
although app-specific functionality is somewhat crippled.

so, to summarize my initial questions are:

1] what is a surface in Qt 5? how does it relate to the QSurface class?
2] is the single surface/full screen of eglfs anywhere documented? is it
only on embedded? (as you might understand i do not fully grasp the
relationships between those elements)
3] QWindow inherits from QSurface. I understand the need for QWindow,
although i’d expect QWidgets like QDialog to derive from it as well.
Is it used privately or through composition? If not, how are QWidget based
windows actually painted?

any ideas/suggestions/pointers (to doc) would be greatly appreciated.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20140115/8146ccf3/attachment.html>


More information about the Interest mailing list