Hello,

Developing a rather simple QT-4-based (tried QT 4.3.3 and 4.6.2) application, which targets to be run on a rather modern processor module, I've discovered that my application processes the setPalette()/show()/hide() methods in QPushButton slots with valueable delays.

I've attached the application code to this message: app.qt4.tar..bz2. In two words:

- the application draws several buttons, which text colors have to be changed if a button pressed. To change the color I connect my object's slots to the QPushButton signals, and change the button's palette with QPushButton::setPalette() in the slot function when a signal (e.g., pressed()) is emitted (when user press the button). And here I observe the delay of ~500 msec before the pressed button changes its text color!

- another thing the application does is displaying the picture (like splash-screen) if the special button pressed, and hiding the picture if the user then clicks on it. The application prepares the appropriate objects (QLabel with setPixmap() and transparent QPushButton) in my class's constructor, and then just show()/hide() the appropriate items. And here I observe the delay of up to 1 second (!) before the picture is shown/hidden after I press the appropriate button.

The h/w board I use has the following features:

- EP9315 CPU (ARM920T core), 200MHz, 16KB caches;
- SDRAM 64MB, 100MHz;
- LCD 800x600, 16bpp;
- touch-screen (tslib-1.0);
- running with Linux kernel 2.6.20.21.

When I run the application described (appropriately modified) on the same h/w board, but with the QT-2.3.10 library - everything works just perfectly, without any perceptible delays!

Though the QT-2.3.10 library I use is patched with the Cirrus Logic patches available here.

So I do:

to run my QT-2-based application: $ export QWS_DISPLAY=EP93xx:/dev/fb0
to run my QT-4-based application: $ export QWS_DISPLAY=linuxfb:/dev/fb0

I'm not sure that these Cirrus's patches may speed-up things (probably, because I'm not a QT expert ? ), but I guess that the 'driver', which is implemented in these patches, just provides a 'link' for QT-2 to the standard linux frame-buffer interface lacked in QT-2 and presented in QT-4.

Am I mistaken here? If not, then what could be the reasons of the described delays in case of using QT-4 instead QT-2? Is there any chance, that the appropriate implementations of QT classes, which I use, require much more CPU computation power in case of QT-4 rather than in case of QT-2? Are there any documents, which describe the "hardware minimals" required for different stable versions of QT or its features?

Thanks in advance for the comments,
Yuri