2016-06-09 2 views
0

이 이상한 문제가 있습니다.fitInView가 호출 될 때 ResizeEvent가 indefintely 호출됩니다 (QGraphicsScene)

는 그래서 같은를 QGraphicsView 확장 한 클래스 안에 내 장면을 만들 그러나

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

. 이 클래스는 문서에 따라 resizeEvent 메서드를 다시 구현했습니다.

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

이제 상자를 추가하고 아무 것도 발생하지 않습니다. 나는 창 크기를 조정 시작할 때, 나는 중지 포인트가되어 그 크기에 아주 아주 작은 변화와 함께 영원히, 프로그램이 중단 내가 크기 조정 메시지를 seing 계속 :

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

어떤 아이디어?

답변

0

문제가 무엇인지 알아 냈습니다. ConversationView의 resize 이벤트 (QGraphicsView에서 확장 됨)를 재정의하는 대신 포함하는 위젯의 resizeEvent (이 경우 QDialog 기반 클래스)를 재정의했습니다.

정확히 동일한 매개 변수를 사용하면 문제가 해결됩니다.