gpt4 book ai didi

c++ - QGraphicsDropShadowEffect 在嵌入式系统上占用 cpu

转载 作者:行者123 更新时间:2023-11-28 08:16:43 25 4
gpt4 key购买 nike

我创建了一个用作某种弹出窗口的小部件,因此周围应该有一个投影,以便从背景中光学地提升它。我在弹出窗口小部件的构造函数中初始化投影效果,如下所示:

dropshadow = new QGraphicsDropShadowEffect(this);
dropshadow->setBlurRadius(32);
dropshadow->setColor(QColor("#121212"));
dropshadow->setOffset(0,0);
setGraphicsEffect(dropshadow);

该应用程序在带有 Intel Atom CPU 的嵌入式系统上运行,这是一个定制的 Linux 发行版,Qt v4.7.3 与 qws 服务器一起运行。当我禁用阴影时,当 GUI 空闲时我的 CPU 使用率低于 10%。启用投影会将 CPU 使用率提高到 80% 以上。对应用程序进行分析表明,大部分 CPU 时间花费在 libQtGui.so.4.7.3 中。

有谁知道为什么 CPU 使用率会像这样爆炸,即使 GUI 中绝对没有发生任何事情,甚至没有鼠标移动?

编辑:更改弹出窗口的大小会更改 cpu 使用量。将大小减小到四分之一可将 CPU 使用率降低到大约四分之一。很奇怪。

最佳答案

问题只是部分与投影有关。似乎重绘投影需要相当多的 CPU 时间——如果重绘不是太频繁的话,这是可以接受的。问题真的很简单。弹出窗口后面的小部件每秒重绘四到五次,因此弹出窗口也需要重绘。这吞噬了大量的 CPU 时间。解决方案同样简单:如果屏幕上没有真正发生变化,则避免重绘事件。

关于c++ - QGraphicsDropShadowEffect 在嵌入式系统上占用 cpu,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7484730/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com