QT开发中文网

Qt QGraphicsView 让其中一个item居中显示

要让 QGraphicsView 中的一个 item 居中显示,可以使用以下步骤:

  1. 获取视图的大小:

    QSizeF viewSize = view->viewport()->size();
    
  2. 获取要居中显示的 item 的大小:

    QRectF itemRect = item->boundingRect();
    
  3. 计算偏移量,使得 item 在视图中居中:

    qreal xOffset = (viewSize.width() - itemRect.width()) / 2;
    qreal yOffset = (viewSize.height() - itemRect.height()) / 2;
    
  4. 将视图的滚动条设置为适当位置以确保 item 居中显示: “`cpp view->ensureVisible(item, 0, 0);

    // 若需要平滑滚动到居中位置,可使用如下代码替代上面的 ensureVisible() /* QScrollBar* hBar = view->horizontalScrollBar(); QScrollBar* vBar = view->verticalScrollBar(); hBar->setValue(xOffset + (itemRect.width() - viewSize.width()) / 2); vBar->setValue(yOffset + (itemRect.height() - viewSize.height()) / 2); */

  5. 调整视图的变换矩阵以确保 item 在视图中心居中。例如,将 QGraphicsView 的 scene 指定为 QGraphicsScene,并执行以下操作:

QTransform transform;
transform.translate(xOffset, yOffset);
view->setTransform(transform);

这样,指定的 item 就会在 QGraphicsView 中居中显示了。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://qt.0voice.com/?id=5806

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?