Здравствуйте,
Столкнулся с проблемой "заторможенности" довольно простого QT приложения на TionPro v2 rev3 при использовании последних версий библиотек QT (пробовал 4.3.3 и 4.6.2).
QT приложение, о котором идёт речь (см. код в атачменте):
1) рисует четыре кнопки pushButton_1/2/3/4 с надписями; при нажатии на кнопку должно изменять цвет надписи на ней и восстанавливать цвет надписи кнопки, которая была нажата до данной (типа подсвечивается последняя нажатая кнопка). Для манипуляций с цветом подключаю слоты создаваемого приложением наследника QObject к сигналам кнопок (например, pressed()) и в слотах использую QPushButton::setPalette().
2) кроме того в приложении есть пятая кнопка, idleButton, при нажатии на которую во весь экран должна рисоваться картинка (типа заставка), которая должна пропадать при нажатии на неё. QSplashScreen не использую (т.к. поверх картинки должна быть часто меняющаяся надпись [текущее время] - и постоянные QSplashScreen::message() совсем уж сильно загружают процессор - т.к. они, как я понимаю, приводят к перерисовке всей картинки), а рисую картинку в QLabel с помощью setPixmap() и рисую поверх прозрачную кнопку, picButton, на весь экран, сигнал с которой подключен к слоту делающему hide() для QLabel и этой большой кнопки.
Проблема заключается:
в случае (1): в визуально заметной (и от того довольно неприятной) задержке при изменении цвета надписи нажимаемой кнопки pushButton_i [задержка где-то в несколько сотен миллисекунд],
в случае (2): в задержке прежде чем начинает рисоваться картинка после нажатия на кнопку idleButton, а также прежде чем картинка спрячется после нажатия на picButton [задержки до секунды (!) с небольшим].
При этом, если соответствующим образом адаптированное приложение я запускаю с QT-2.3.10, собранной из crater дистрибутива (т.е. с наложением всех циррусовских патчей), - всё работает просто идеально, без каких бы то ни было визуально заметных задержек!
Собственно вопросы:
1) имелся ли у кого-нибудь успешный опыт по использованию QT-4-based приложений на ТионПро-v2? Может, я в своём приложении (см. атачмент) просто что-то криминальное нечаянно делаю :\
2) есть ли смысл ожидать исчезновения обозначенных проблем в случае использования Тион-а с PXA270? Там по идее частота CPU 400MHz+ против 200MHz EP9315, да и кэш вдвое больше; кроме того, может frame-buffer драйвер какой-то более продвинутый (pxa270 порт вроде бы в mainstream, в отличии от ep9315)..
3) что есть всё же причина такого существенного отличия "откликаемости" приложения при использовании QT-4 и QT-2? Повышенные требования QT-4 к
аппаратуре или тот факт, что для QT-2 циррус сделал те самые патчи из кратера (см. [1]) и что в результате них с QT-2 используется специализированный дисплейный драйвер библиотеки (QWS_DISPLAY=EP93xx:/dev/fb0), а с QT-4, для которой никакого патча циррус не делал, - стандартный (QWS_DISPLAY=linuxfb:/dev/fb0)? Может, кто-нибудь пробовал адаптировать qt-related патчи из кратера под QT-4 или в этом, в плане производительности, - нет смысла ?
---
[1] патчи из кратер для QT-2.3.10:
http://arm.cirrus.com/files/index.php?path=linux%2Freleases%2Flinux-2.6%2F1.0.3%2Flinux-crater_1-0-3%2Fpackages%2Fqt/