首页 文章

QT C QPainter - 如何正确使用'this' [关闭]

提问于
浏览
0

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

X:\ Folder \ ink.cpp:56:错误:C2664:QPainter :: QPainter(QPaintDevice *):无法将参数1从Ink * const转换为QPaintDevice *指向的类型不相关;转换需要reinterpret_cast,C风格的转换或函数式转换

简化代码:

#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语言 .

1 回答

  • 1
    • QPainter 的构造函数似乎带有一个指向 QPaintDevice 的指针,并且你试图向它传递一个指向 Ink 实例的指针,所以它不起作用 . 也许你的意思是从 QPaintDevice 派生 Ink ,在这种情况下你想要 class Ink : public QPaintDevice { ... 等 .

    • 当您在类中定义函数时,不需要 ink:: . Inkink 在任何情况下都不是一回事,因为C区分大小写 .

相关问题