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 でほとんどのヒットを確認しました。それが機能した最高のものは何ですか(私にはわかりません-おそらく何かを変更しました)!この接続の効果を覚えています。ヘルプ!