java graphics最小化_如何强制QGraphicsView / QGraphicsScene缩小到最小尺寸

我使用QGraphicsView / QGraphicsScene在Qt中绘图 . 只要我不断绘制更大的东西,缩放和适合工作得体 . 但是,当boundign矩形大小减小时View不会 . 它只显示相同(或更大的区域) .

在我在视图上重新绘制一个较小的场景之前,我调用以下命令:

mpScene->clear();

mpScene->setSceneRect(QRectF());

mpView->setSceneRect(QRectF());

mpView->resetMatrix();

mpView->fitInView(this->sceneRect(),Qt::KeepAspectRatio);

唉,视图显示的画布仍在不断增长 . 我错过了什么?

场景和视图配置如下(仅为完整性而给出):

mpView->setViewportUpdateMode(QGraphicsView::MinimalViewportUpdate);

mpView->setCacheMode(QGraphicsView::CacheBackground);

mpView->setScene(mpScene);

mpView->setWindowFlags(Qt::FramelessWindowHint);

mpView->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOn);

mpView->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);

mpView->setFrameStyle(QFrame::NoFrame);

mpView->setAutoFillBackground(false);

mpView->setAttribute(Qt::WA_OpaquePaintEvent, true);

mpView->setAttribute(Qt::WA_NoSystemBackground, true);

//enabling OpenGl if possible

QGLFormat fmt = QGLFormat::defaultFormat();

fmt.setSampleBuffers(true);

fmt.setDoubleBuffer(true);

fmt.setSamples(256);

fmt.setDirectRendering(true);

QGLWidget* pGlWidget = new QGLWidget(fmt);

if(pGlWidget->isValid()) mpView->setViewport(pGlWidget);

else delete pGlWidget;

mpView->setViewportUpdateMode(QGraphicsView::MinimalViewportUpdate);

注意:版本是Qt4.8

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值