我正在尝试制作一个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 ++。
答案 0 :(得分:1)
QPainter
的构造函数似乎带有指向QPaintDevice
的指针,并且您尝试将指针传递给Ink
实例,因此它赢了“工作。也许您打算从Ink
派生QPaintDevice
,在这种情况下,您需要class Ink : public QPaintDevice { ...
等。
当您在类中定义函数时,不需要ink::
。在任何情况下,Ink
和ink
都不是一回事,因为C ++区分大小写。