ZBLOG

m_pMainGameScene = new QGraphicsScene(); m_pMainGameScene->setSceneRect(-100, -100, 200, 200); m_pMainGameView = new QGraphicsView(m_pMainGameScene); // // 设置 view 的对齐方式和边距为0以填满整个 QWidget // m_pMainGameView->setHorizontalScrollBa...

你提供的代码段是在使用 Qt 框架创建一个图形场景(QGraphicsScene)和一个视图(QGraphicsView),并向场景中添加了一些矩形项。看起来你希望将这些矩形项以某种方式排列或组织。

如果你想要将这些矩形项添加到视图的第一行,你可以考虑以下几点:

  1. 调整坐标:根据你的需求,可能需要对每个矩形的位置进行更改,以确保它们在视图中的显示位置符合预期。

  2. 使用布局管理器:虽然 QGraphicsView 不支持直接的布局管理,但可以通过对 QGraphicsScene 的元素位置进行控制来模拟这种效果。

下面是一个简单的示例,用于设置和调整矩形的位置,使其按行排列(假设是横向排列):

// 清除之前的项目
m_pMainGameScene->clear();

// 设置场景范围
m_pMainGameScene->setSceneRect(-100, -100, 200, 200);

// 添加四个方块,横向排列
qreal itemSize = 20; // 方块大小
qreal spacing = 10; // 方块间距

// 在第一行添加方块
QGraphicsRectItem *pItem_1 = m_pMainGameScene->addRect(0, 0, itemSize, itemSize, QPen(Qt::black), QBrush(Qt::red));
QGraphicsRectItem *pItem_2 = m_pMainGameScene->addRect(itemSize + spacing, 0, itemSize, itemSize, QPen(Qt::black), QBrush(Qt::yellow));
QGraphicsRectItem *pItem_3 = m_pMainGameScene->addRect((itemSize + spacing) * 2, 0, itemSize, itemSize, QPen(Qt::black), QBrush(Qt::blue));
QGraphicsRectItem *pItem_4 = m_pMainGameScene->addRect((itemSize + spacing) * 3, 0, itemSize, itemSize, QPen(Qt::black), QBrush(Qt::cyan));

// 创建组并添加项目到组中
m_pGroup = new QGraphicsItemGroup();
m_pGroup->addToGroup(pItem_1);
m_pGroup->addToGroup(pItem_2);
m_pGroup->addToGroup(pItem_3);
m_pGroup->addToGroup(pItem_4);

// 将组添加到场景
m_pMainGameScene->addItem(m_pGroup);

注意事项:

  • 确保合适地设置 setHorizontalScrollBarPolicy()setVerticalScrollBarPolicy(),如果你的内容超出视图边界时会有帮助。
  • 如果你想要更复杂的布局,可以考虑使用多个 QGraphicsItems 来实现,例如线性排列、网格等,根据实际情况选择合适的方法。


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

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

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

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

联系我们

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

微信号:3007537140

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

关注我们
x

注册

已经有帐号?