我有这个奇怪的问题。
我在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();
}
现在我在场景中添加了一个框,但没有任何反应。但是,当我开始调整窗口大小时,有一个点我停下来并且程序挂起,我一直在查看大小调整消息,永远和永远,并且其大小的变化非常小:
QSize(1342, 190)
QSize(1356, 190)
QSize(1342, 190)
QSize(1356, 190)
有什么想法吗?
答案 0 :(得分:0)
我弄清楚问题是什么。我没有重新定义ConversationView的resize事件(从QGraphicsView扩展),而是重新定义了包含Widget的resizeEvent(在这种情况下是一个基于QDialog的类)。
使用完全相同的参数,这会使问题消失。