我創建了一個用作某種彈出窗口的小部件,因此應該有一個全方位的陰影以將其從背景中光學升起。我初始化我的彈出式窗口小部件的構造函數的陰影效果如下:QGraphicsDropShadowEffect在嵌入式系統上佔用cpu
dropshadow = new QGraphicsDropShadowEffect(this);
dropshadow->setBlurRadius(32);
dropshadow->setColor(QColor("#121212"));
dropshadow->setOffset(0,0);
setGraphicsEffect(dropshadow);
應用程序與英特爾Atom處理器,定製的Linux發行版在嵌入式系統上運行,QT v4.7.3與QWS服務器上運行。當我禁用陰影時,當GUI空閒時,我的cpu使用率低於10%。啓用投影會將CPU使用率提高到80%以上。分析該應用程序顯示,大部分CPU時間花費在libQtGui.so.4.7.3
之內。
有沒有人有一個想法,即使在GUI中絕對沒有任何事情發生,甚至沒有鼠標移動,爲什麼CPU使用會爆炸這樣?
編輯:更改彈出窗口的大小會改變CPU使用量。將尺寸縮小到四分之一,可將CPU使用量降低到四分之一左右。很奇怪。
並不奇怪。可能實現的陰影效果會隨着像素數量的增加而增加:)而「閒置」是什麼意思? Qt/E會一直重新繪製屏幕,或者觸發重繪,methinks。 – Torp
嗯,我相信Qt是足夠聰明的,不會一直重繪,尤其是在嵌入式系統中,只要沒有任何變化,即沒有鼠標移動,沒有可見部件的變化等。否則,CPU使用率將全部爲100%時間,會不會? – arne
彈出窗口中是否有閃爍的光標? – alexisdm