Если закрыть глаза
на попытку смешать теплое и зеленое, то должно быть так
C++ (Qt)
class Square
: public QObject // всегда первый
, public QPainter
{
Q_OBJECT
public:
Square(QObject* parent = nullptr);
void drawSquare(QPoint point,QPoint point2,QPoint point3,QPoint point4);
};
Но
, не нужно смешивать средство рисования QPainter и объект с поведением.
QPainter всегда можно создать на лету с указанием устройства, на котором требуется рисовать.