2016-06-09 13 views
0

Ich habe dieses seltsame Problem.ResizeEvent wird unbestimmt genannt, wenn fitInView aufgerufen wird (QGraphicsScene)

Ich schaffe meine Szene in einem QGraphicsView erweiterten Klasse wie folgt:

scene = new QGraphicsScene(this); 
this->setScene(scene); 
this->setAlignment(Qt::AlignTop|Qt::AlignLeft); 
showRect.setCoords(0,0,sceneWidth,sceneHeight); 

jedoch. Die gleiche Klasse hat die resizeEvent Verfahren nach Dokumentation neu implementiert:

void ConversationView::resizeEvent(QResizeEvent *e){ 
    //Q_UNUSED(e); 
    this->fitInView(showRect,Qt::KeepAspectRatioByExpanding); 
    qWarning() << e->size(); 
} 

Jetzt füge ich eine Box der Szene und nichts passiert. Aber wenn ich das Fensters beginnen Ändern der Größe, es kommt ein Punkt, wo ich aufhören und das Programm hängt und ich halte die Dimensionierung Nachricht seing, immer und immer mit sehr, sehr kleinen Variationen von seiner Größe:

QSize(1342, 190) 
QSize(1356, 190) 
QSize(1342, 190) 
QSize(1356, 190) 

Irgendwelche Ideen?

Antwort

0

Ich habe herausgefunden, was das Problem war. Anstatt das Größenänderungs-Event der ConversationView neu zu definieren (das sich von QGraphicsView aus erstreckt), habe ich das resizeEvent des enthaltenen Widgets neu definiert (in diesem Fall eine Klasse basierend auf einem QDialog).

Mit genau den gleichen Parametern hat das das Problem verschwinden lassen.