// MyGraphicsView.cpp #include "MyGraphicsView.h" MyGraphicsView::MyGraphicsView(QGraphicsScene *scene, QWidget *parent) : QGraphicsView(scene, parent) { // 在构造函数中,可以设置一些视图属性,比如视口更新模式 // setViewportUpdateMode(QGraphicsView::FullViewportUpdate); this->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); this->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); // 让view的背景透明(可选),以便与窗口背景融合 this->setStyleSheet("background: transparent;"); this->setFrameShape(QFrame::NoFrame); this->setContentsMargins(0, 0, 0, 0); } void MyGraphicsView::setGraphicsProxyWidget(QGraphicsProxyWidget* proxy) { m_proxy = proxy; } void MyGraphicsView::resizeEvent(QResizeEvent *event) { // 1. 首先调用父类的 resizeEvent,这是必须的[reference:4]! QGraphicsView::resizeEvent(event); // 2. 确保场景存在,然后进行适配 // if (scene()) { // // 获取场景中所有 items 的边界矩形 // QRectF itemsRect = scene()->itemsBoundingRect(); // if (!itemsRect.isNull()) { // // 将视图适配到 items 的边界矩形,并保持宽高比 // fitInView(itemsRect, Qt::KeepAspectRatio); // } // } }