gpt4 book ai didi

c++ - 如何避免在 QFrame 上重绘?

转载 作者:行者123 更新时间:2023-11-28 01:50:04 25 4
gpt4 key购买 nike

我有一个QFrame,用于绘制一些矩形来表示一天中的某些时间段,例如,用户 sleep 的时间段。

为此,我覆盖了 paintEvent(QPaintEvent *) 函数,并使用 QPainter 绘制矩形。

它工作正常,问题是 paintEvent(QPaintEvent *) 函数被 Qt 自动调用多次以重新绘制 QFrame 并且 CPU 消耗过多。实际上,我只需要重绘几次(通过手动调用重绘函数)。

有什么方法可以避免 QFrame 自动重新绘制自身?

提前致谢

我正在使用 Qt 5.3

最佳答案

只要 Qt 需要重新绘制小部件,它们就会重新绘制。一般来说,你无法控制其中的任何一个。您只能在需要时添加重绘请求,而不能减少它们。

您永远不需要调用 repaint 方法。相反,只要用于绘制的数据发生变化,您就应该update() 小部件。融合更新事件以提高性能。对 update() 的调用应该在小部件的设置方法中,或者应该连接到 dataChanged() 和用于提供小部件的数据模型的等效信号。

很可能您做错了其他事情。您需要提供一个独立的示例来演示问题。

关于c++ - 如何避免在 QFrame 上重绘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43378795/

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