如何避免使用自定义QGraphicsItem对父函数进行模糊调用?

时间:2014-02-26 05:24:31

标签: c++ qt qgraphicsview qgraphicsitem qgraphicsscene

让我们假设有一个带有几个自定义QGraphicsItem的场景。并且每个这样的项目都具有缩放的能力(我将特殊的锚放置到角落)。它正如预期的那样运作良好。

现在我想用QGraphicsItemGroup对一些项目进行分组,我想在组项目中添加相同的比例能力。

以下是我的代码示例:

class Base : public QGraphicsItem
{
public:
Base(QGraphicsItem * parent = 0);
...
// I implement scaling with these functions:
void mouseMoveEvent(QGraphicsSceneMouseEvent * event);  
void mousePressEvent(QGraphicsSceneMouseEvent * event);  
void mouseReleaseEvent(QGraphicsSceneMouseEvent * event); 
}

class Item : public Base
{
public:
    Item(QGraphicsItem * parent = 0);
    QRectF boundingRect() const;
    void paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = 0);
}

class Group : public Base,QGraphicsItemGroup
{
public:
    Group(QGraphicsItem * parent = 0);
}

我可以编译此代码,但当scene.addItem(item)itemGroup的实例时添加Item之类的内容时,我会收到错误:

request for member 'addItem' is ambiguous

这个错误是可以理解的。对于对象和编译器,有两个类型为QGraphicsItem的父类,在这种情况下不鼓励。所以我的问题 - 我怎么能避免它呢?我不想将相同的代码(用于缩放)复制到2个类中。

0 个答案:

没有答案