2016-06-09 2 views
0

J'ai ce problème étrange.ResizeEvent est appelé indefintely lorsque la fonction fitInView est appelée (QGraphicsScene)

REALISER scène à l'intérieur d'une classe étendue QGraphicsView comme ceci:

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

Cependant. Cette même classe a remis sur pied la méthode resizeEvent selon la documentation:

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

Maintenant, j'ajouter une boîte la scène et rien ne se passe. Mais quand je commence à redimensionner la fenêtre, il arrive un point où je me arrête et le programme se bloque et je garde seing le message de taille, pour toujours et toujours avec des variations très très petites sur sa taille:

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

Toutes les idées?

Répondre

0

J'ai compris quel était le problème. Au lieu de redéfinir l'événement de resize de ConversationView (qui s'étend de QGraphicsView), j'ai redéfini resizeEvent du widget contenant (dans ce cas une classe basée sur un QDialog).

Avec exactement les mêmes paramètres, cela a fait disparaître le problème.