在QT问题中连接 - 没有连接?

时间:2012-04-23 19:53:38

标签: qt connection signals signals-slots slot

我有一个从QGraphicsPixmapItem派生的自定义类。它的名为GraphPixmapItemCustom,它的重载方法是:

void GraphPixmapItemCustom::mousePressEvent(QGraphicsSceneMouseEvent *event)
{
    QGraphicsPixmapItem::mousePressEvent(event);
    GraphMarkItemCustom *ptr;

    if(event->button() == Qt::RightButton)
    {        
        qDebug("Before emit");
        emit addPoint(QPointF(event->pos().x(), event->pos().y()));
        qDebug("After emit");

        markList.append(new GraphMarkItemCustom(QPointF(event->pos().x(), event->pos().y())));
        ptr = markList.last();
        markGroup->addToGroup(ptr);
        //this->scene()->addItem(ptr);
    }
}

信号在标题处声明:

signals:
    void addPoint(QPointF position);

在主类中有一个指向GraphPixmapItemCustom类的对象的指针,名为

private:
   GraphPixmapItemCustom *pixItemRGB; 

在主类我有一个名为:

的插槽
private slots:
   void pointAdd(QPointF position);

在主类构造函数中,我有一个连接:

connect(pixItemRGB, SIGNAL(addPoint(QPointF)), this, SLOT(pointAdd(QPointF)));

在插槽中,我只有qDebug("YUPPY IT ACTUALLY WORKS!");

但是这个插槽并没有被解雇。为什么?我删除了所有moc文件和所有不必存在的内容。因此,只有.pro.h.cpp个文件以及.ui形成了必要的内容。

我检查过Google上的大多数热门内容。什么是最好的(我没有确定 - 也许我修改了一些东西)它有效!我记得这种联系的工作效果。救命啊!

1 个答案:

答案 0 :(得分:1)

在使用new运算符创建GraphPixmapItemCustom对象后,您必须连接信号