Maus und QGraphicsView
Verfasst: 12. Februar 2008 09:56
Hallo,
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:
Da ich vermute, dass es am Timer liegt auch noch meine Timerfunktion:
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();
}
}