我正在尝试使用此处描述的方法在同一个小部件上使用 QPainter 和 GDI 调用。
不幸的是,本教程似乎是在早期版本的 Qt 上编写的,现在它不起作用。
我设置WA_PaintOnScreen
标志并重新实现paintEngine()
以返回 NULL。
然后在paintEvent()
我创建一个 QPainter,使用它,然后使用一些 GDI 调用来绘制位图。GDI 调用工作正常,但 QPainter 什么也不做。我在控制台上收到以下错误:
QPainter::begin: Paint device returned engine == 0, type: 1
这根本不再支持吗?我该怎么做?
我还尝试在 GDI 绘画小部件之上创建一个额外的小部件,但效果不佳,因为顶部小部件显示为黑色并阻挡了 GDI 小部件。