Я создал виджет, который служит своего рода всплывающим окном и, следовательно, должен иметь тень вокруг, чтобы оптически поднять его над фоном. Я инициализирую эффект тени в конструкторе моего всплывающего виджета следующим образом:
dropshadow = new QGraphicsDropShadowEffect(this);
dropshadow->setBlurRadius(32);
dropshadow->setColor(QColor("#121212"));
dropshadow->setOffset(0,0);
setGraphicsEffect(dropshadow);
Приложение работает на встроенной системе с процессором Intel Atom, пользовательским дистрибутивом Linux, Qt v4.7.3, работающим с сервером qws. Когда я отключаю тень, использование моего процессора составляет менее 10%, когда графический интерфейс не используется. Включение тени увеличивает загрузку процессора более чем на 80%. Профилирование приложения показывает, что большая часть процессорного времени тратится на libQtGui.so.4.7.3
.
У кого-нибудь есть идея, почему загрузка процессора так резко возрастает, хотя в графическом интерфейсе абсолютно ничего не происходит, даже движения мыши?
Редактировать. Изменение размера всплывающего окна влияет на степень использования ЦП. Уменьшение размера до четверти снижает использование процессора примерно до четверти. Очень странно.