通过 QDirectPainter 绘画

发布于 2024-07-11 17:39:16 字数 77 浏览 7 评论 0原文

任何人都可以详细建议我如何使用 QDirectPainter 类直接在帧缓冲区上绘制小部件。 如果您为我提供一个可行的示例,我会更有帮助。

Can anyone suggest me in detail how to use QDirectPainter class to paint a widget directly on frame buffer. I would be more helpful if you provide me a working example.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

琴流音 2024-07-18 17:39:16

QDirectPainter 不会也不可能绘制任何东西。 它提供对帧缓冲区的访问,即通过其 QDirectPainter::frameBuffer () 函数。 一旦你有了帧缓冲区的指针,你应该能够直接操作像素。

一种可能有效的方法是通过光栅引擎将您的小部件绘制到 QImage(注意颜色深度、字节顺序、像素位置等以匹配帧缓冲区的位置)。 通过在 QImage 上打开 QPainter 可以轻松实现这一点。 绘制过程完成后,将图像缓冲区的相关部分传输到帧缓冲区。

QDirectPainter does not and can not paint anything. It is there to provide access to the framebuffer, i.e. via its QDirectPainter::frameBuffer () function. Once you have the pointer the framebuffer, you should be able to manipulate the pixels directly.

An approach that might work is to paint your widget to a QImage (careful about the color depth, byte order, pixel placement, etc to match those of your framebuffer) via the raster engine. This is easily possible by opening a QPainter on a QImage. After the painting process is done, blit the relevant part of the image buffer to the framebuffer.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文