1
4
假设您不想从屏幕外的缓冲区中对值进行像素化处理(但更确切地说,只需在缓冲区上重新绘制一些内容,然后再次将其显示到屏幕上),那么您应该使用qpixmap作为缓冲区,而不是qimage。使用后者将禁用所有绘制加速,因为qt使用其软件光栅引擎返回,因此使用qpixmap。如果您使用OpenGL图形系统,您仍然可以从中受益。 有关如何执行此操作的示例,请检查 my last code on running the Monster demo ,它需要有一个屏幕外的像素映射,因为运动模糊的效果,通过重复的绘画源,而不是合成模式。 要禁用qt的备份存储(这通常不是一个好主意),请使用 Qt::WA_PaintOnScreen 对于您的顶级小部件。 有点不相关,但你可能想看看 QRubberBand 小装置。 |
2
4
在图形区域的顶部绘制时,您应该能够使用合成模式来反转。使用差异合成模式绘制白色。以下示例是显示pixmap的qlabel的子类:
|
3
0
我知道的最简单、最直截了当的答案是像你以前那样做,对一个qimage,并使用qimage作为屏幕上小部件的源。 另一种选择可能是在图形上添加一个透明的小部件,它只绘制图形的反转部分。不过,我认为这根本无法优化绘图。它很可能会导致绘制底层的图形,然后是反向部分的叠加。 |
DELI · 如何在QML中修改TableView数据? 2 年前 |
joshp · Pysides6列从设置向后跨距 2 年前 |
MingMing · C++在MaCOS 11上显示权限对话框 2 年前 |
K.Mulier · PyQt5:如何将QObject移动到主线程? 6 年前 |