ich wusste nicht in welche Sektion mein Beitrag gehört, daher versuche ich es hier einmal.
Ich habe eine Custom QGraphicsItem Klasse.
Ich kann sie erzeugen und im view anzeigen lassen.
Code: Alles auswählen
myStates::myStates() {
effect = new QGraphicsOpacityEffect();
shadowEffect = new QGraphicsDropShadowEffect();
pressed = false;
this->setFlag(ItemIsMovable);
this->setFlag(ItemSendsScenePositionChanges);
changeStateDia = new changeStateDialog();
connect(changeStateDia, &changeStateDialog::changeStateData, this, &myStates::changeData);
}
myStates::myStates(QString n, QString c, QString out, QString d) {
this->name = n;
this->description = d;
this->codification = c;
this->output = out;
changeStateDia = new changeStateDialog();
connect(changeStateDia, &changeStateDialog::changeStateData, this, &myStates::changeData);
shadowEffect = new QGraphicsDropShadowEffect();
pressed = doubleClicked = false;
this->setFlag(ItemIsMovable);
this->setFlag(ItemSendsScenePositionChanges);
}
QRectF myStates::boundingRect() const
{
// int x = QCursor::pos().x();
// int y = QCursor::pos().y();
return QRectF(0, 0, 100, 100);
}
void myStates::paint(QPainter *painter, const QStyleOptionGraphicsItem *opt, QWidget *widget)
{
QRectF rec = boundingRect();
QBrush brush(Qt::white);
if (pressed)
{
brush.setColor(Qt::lightGray);
}
painter->setPen(colorPen);
painter->setBrush(brush);
painter->drawEllipse(rec);
painter->drawText(rec, Qt::AlignVCenter|Qt::AlignHCenter, this->name);
this->setGraphicsEffect(shadowEffect);
}
void myStates::mousePressEvent(QGraphicsSceneMouseEvent *e)
{
if (e->button() == Qt::LeftButton)
{
pressed = true;
}
update();
QGraphicsItem::mousePressEvent(e);
}
void myStates::mouseReleaseEvent(QGraphicsSceneMouseEvent *e)
{
pressed = false;
update();
QGraphicsItem::mouseReleaseEvent(e);
}
Kann mir da bitte jemand ein paar Gedankenanstöße geben oder sogar die nötige Klassenmethode die das schon kann

Desweiten wollte ich mal wissen wie es möglich ist zwei Objekte nach dem Sie im GraphicsView angezeigt werden sozusagen im nachhinein zu connecten / mergen...
Also annahme ich habe zwei ellipsen im GraphicsView und will diese mit einer Linie verbinden. Wenn ich nun eine Ellipse auf eine andere Position bewefe ,sollen die Linien Fest an einem Ellipse Punkt angehängt bleiben und sich in Winkel und Länge ändern.
Ich bin für alle Tipps und Tricks offen..
Und gerne alle VerbesserungsVorschläge zu meinem jetztigen Code her

Viele Grüße