habe ein Problem mit meinen MouseEvents in der QGraphicsView. Die Items sollen anklickbar sein und können teilweise verschoben werden. Das funktioniert auch manchmal, manchmal leider auch nicht. Woran kann dies liegen?
Nach dem Programmstart funktioniert dies zunächst, nach zirka dreißig Sekunden ohne Mausaktionen, ist keine Verschiebung mehr möglich, da das MousePressEvent nicht aufgerufen wird (mit qDebug()-Ausgabe überprüft).
Hier meine MouseEvents:
Code: Alles auswählen
void ZoomSlider::mousePressEvent(QGraphicsSceneMouseEvent *event)
{
qDebug() << "press";
bIsMoving = true;
QGraphicsItem::mousePressEvent(event);
update();
}
void ZoomSlider::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
{
QGraphicsItem::mouseMoveEvent(event);
update();
}
void ZoomSlider::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
{
bIsMoving = false;
QGraphicsItem::mouseReleaseEvent(event);
update();
}Code: Alles auswählen
void RunwayAssignment::timerEvent(QTimerEvent *event)
{
Q_UNUSED(event);
bool bItemsMoved = false;
for (int i=0; i<2; i++)
{
if ((iSliderPos[i] != itemSlider[i]->getXPosition()) && (itemSlider[i]->bIsMoving == false))
{
iSliderPos[i] = (int)(itemSlider[i]->pos().x());
itemSlider[i]->setPos(QPointF(iSliderPos[i], iposh[0]+iposh[0]));
bItemsMoved = true;
}
}
if (bItemsMoved)
{
killTimer(timerId);
timerId = 0;
GetTime();
}
}