Qt提示QPainter::begin: Paint device returned engine == 0, type:0/1/2/3...,type数值代表什么

来源:互联网 发布:java教程书籍推荐 编辑:程序博客网 时间:2024/06/07 13:35


    最近在做一个绘图应用,经常会在调试的时候看到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       = 0x04,        Picture       = 0x05,        Pbuffer       = 0x06,    // GL pbuffer        FramebufferObject = 0x07, // GL framebuffer object        CustomRaster  = 0x08,        MacQuartz     = 0x09,        PaintBuffer   = 0x0a,        OpenGL        = 0x0b    };
    都这里,就一切都明了了

0 0
原创粉丝点击