我正在尝试制作一个 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 回答
QPainter
的构造函数似乎带有一个指向QPaintDevice
的指针,并且你试图向它传递一个指向Ink
实例的指针,所以它不起作用 . 也许你的意思是从QPaintDevice
派生Ink
,在这种情况下你想要class Ink : public QPaintDevice { ...
等 .当您在类中定义函数时,不需要
ink::
.Ink
和ink
在任何情况下都不是一回事,因为C区分大小写 .