2012-04-23 34 views
0

QGraphicsPixmapItemから派生したカスタムクラスがあります。そのGraphPixmapItemCustomと呼ばれ、それはオーバーロードだ方法がある:QT問題で接続 - 接続していませんか?

private: 
    GraphPixmapItemCustom *pixItemRGB; 

と呼ばれるクラスGraphPixmapItemCustomのオブジェクトへのポインタを持っているメインクラスで

signals: 
    void addPoint(QPointF position); 

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); 
    } 
} 

信号がヘッダで宣言されていますメインクラスでは、私はスロットと呼ばれる:

private slots: 
    void pointAdd(QPointF position); 
私は qDebug("YUPPY IT ACTUALLY WORKS!");

を持っているスロットに

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

しかし、スロットが発射beeingていません。 私が接続しているメインクラスのコンストラクタで

。どうして?私はすべてのmocファイルと、そこにいなくてもいたすべてを削除しました。そのため、.pro,.hおよび.cppファイルと、必要な場合は.uiという形式だけがあります。

私はGoogleでほとんどのヒットをチェックしました。最高のものは何ですか(私は麻薬ではない - おそらく私は何かを変更した)働いた!私はこの接続の作用効果を覚えています。助けて!

+0

コンソールの「Before emit」と「After emit」は印刷されますか? 'connect'の呼び出しは' true'を返しますか? – alexisdm

+0

QGraphicsPixmapItemに加えて、QObjectから継承することを忘れましたか? – Anthony

+0

はい、それらが印刷され、connectがtrueを返します。 – silverado

答えて

1

の後にの後にnew演算子を使用してGraphPixmapItemCustomオブジェクトを作成する必要があります。

関連する問題