Qt5.6 widget erase problem on MCIMX7SABRE

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Qt5.6 widget erase problem on MCIMX7SABRE

1,001 Views
bonus
Contributor II

I'm working on a QT5.6 (QWidget) application for an IMX7 embedded system.

This developpement was started an tuned on a PC running under UBUNTU 14.04. It runs perfectly under this environment.

Now I try this application on MCIMX7SABRE eval board, using linuxfb plugin (IMX7 doesn't have graphic accelerator).

All Widgets are correctly displayed on the monitor, but I've got trouble with screen refresh.

The widgets are never deleted and overlap to infinity.

Hidden windows, for example, are never erased, and image cursor is drawn over its last positions.

I tried this application on IMX6Sabre with openGl and got the same problems.

Does anyone have an idea?

Labels (3)
3 Replies

753 Views
bonus
Contributor II

EUREKA!

In fact the solution was simple: I put in my main window a setAttribute(Qt::WA_TranslucentBackground, true), so the background was not opaque, and no erase was done (no color to fillrect with the widget, to erase ). The solution was to define a transparent background color with setStyleSheet("background-color: transparent") and everything works correctly...

753 Views
bonus
Contributor II

Hi Bio_TICFSL,

Qt5 is supported with QWidget developpement on MX7, as my widgets are correctly drawn. Indeed, you can't use QtQuick because a VPU is needed. In Yocto we removed all qml modules as they use openGl, and so we manage to use Qt5.

I found the reason of my problems:

Qt does not handle correctly transparency if all windows are transparent : a parent window, at least, should be opaque throughout the surface of the screen used for the refresh to work properly (erase the object before redrawing).

My purpose was to use Qt to write informations and menus on a transparent background in a framebuffer, and use the lcd controler (elcdIF) to merge this last, with an other framebuffer which contains animated images. With that, Qt's windows are incrusted in the images with a low cpu charge.

In fact, I think I have two solutions: check in QPainter why the widget is not erased before it is repainted and correct the default, or insert animated images in the Qt's background widget as an opaque background (which implies more CPU calculations).

Did someone have the same problem and any other solution?

thanks

0 Kudos

753 Views
Bio_TICFSL
NXP TechSupport
NXP TechSupport

Hi Benoit,

Qt 5 is not supported for SoC without hardware graphics. Qt 5 video is not supported on SoC without VPU, these is the case of MX7

For the MX6SX, .Mx6SX has GPU 2D/3D Vivante GC400T, and yes it support Qt5. You should add the EGL APIs to your application about change context such as EGLmakecurrent in order to refresh the grapich every time your app need it.

Regards

0 Kudos