ある種のポップアップウィンドウとして機能するウィジェットを作成したため、背景から光学的に持ち上げるためにドロップシャドウが周りに必要です。次のように、ポップアップ ウィジェットのコンストラクターでドロップ シャドウ効果を初期化します。
dropshadow = new QGraphicsDropShadowEffect(this);
dropshadow->setBlurRadius(32);
dropshadow->setColor(QColor("#121212"));
dropshadow->setOffset(0,0);
setGraphicsEffect(dropshadow);
このアプリケーションは、Intel Atom CPU、カスタム Linux ディストリビューション、qws サーバーで実行される Qt v4.7.3 を搭載した組み込みシステムで実行されます。ドロップ シャドウを無効にすると、GUI がアイドル状態のときに CPU 使用率が 10% 未満になります。ドロップ シャドウを有効にすると、CPU 使用率が 80% を超えます。アプリのプロファイリングは、CPU 時間のほとんどが 内で費やされていることを示していますlibQtGui.so.4.7.3
。
マウスの動きでさえ、GUIでまったく何も起こっていないにもかかわらず、CPU使用率がこのように爆発する理由を誰かが知っていますか?
編集:ポップアップのサイズを変更すると、CPU 使用量が変わります。サイズを 4 分の 1 に減らすと、CPU 使用率が約 4 分の 1 に減ります。非常に奇妙な。