最近在做一个绘图应用,经常会在调试的时候看到QPainter::begin: Paint device returned engine == 0, type:1/2/3之类的警告。一直对type代表的具体内容不解,前几天看了看QPainter的源码,恍然大悟~
d->engine = pd->paintEngine();
if (!d->engine) {
qWarning("QPainter::begin: Paint device returned engine == 0, type: %d", pd->devType());
return false;
}
在这里找到了这个警告的原型,然后跟踪pd->devType()
int QImage::devType() const
{
return QInternal::Image;
}
看到了devType()返回的是QInternal::Image类型的枚举变量,再跟踪QInternal::Image,在qnamespace里,看到
class Q_CORE_EXPORT QInternal {
public:
enum PaintDeviceFlags {
UnknownDevice = 0x00,
Widget = 0x01,
Pixmap = 0x02,
Image = 0x03,
Printer =