0

我正在尝试制作一个QPainter对象。
所有的例子都做了类似的事情。但它抱怨:

X:\Folder\ink.cpp:56: error: C2664: QPainter::QPainter(QPaintDevice *) : cannot convert parameter 1 from Ink *const to QPaintDevice * 指向的类型不相关;转换需要 reinterpret_cast、C-style cast 或 function-style cast

简化代码:

#include <QtCore>
#include <QtGui>
#include <QPainter>

class Ink
{
public:
    void ink::paintEvent( QPaintEvent* event )
    {
        QPainter painter(this);
    }
};

在线发生错误:QPainter painter(this);

然后它也抱怨

X:\Folder\ink.cpp:11: 错误: C2653: ink : 不是类或命名空间名称

这是在线:

void ink::paintEvent(QPaintEvent *event)

请使用婴儿的话,我今天才开始使用 C++。

4

1 回答 1

1
  1. for 的构造函数QPainter似乎需要一个指向 a 的指针QPaintDevice,而您正试图将一个指向Ink实例的指针传递给它,所以它不起作用。也许你的意思是派生InkQPaintDevice,在这种情况下你会想要class Ink : public QPaintDevice { ...等等。

  2. ink::在类中定义函数时不需要。Ink并且ink在任何情况下都不是一回事,因为 C++ 是区分大小写的。

于 2013-08-25T02:09:53.537 回答