QGraphicsItemGroup组合中的一些细节
Posted 可峰科技
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QGraphicsItemGroup组合中的一些细节相关的知识,希望对你有一定的参考价值。
注意QGraphicsItem被放入Group中或者设置了item->setSelected(false)时,再次调用scene->selectedItems()原先的item已经被移除,需要注意。
组合的时候可以这样写,好理解一些。
void MainWindow::on_actGroup_triggered()
//组合
int cnt=scene->selectedItems().count();
if (cnt>1)
QGraphicsItemGroup* group =new QGraphicsItemGroup; //创建组合
scene->addItem(group); //组合添加到场景中
//peak.ding 这样写好理解一些
auto selected_items = scene->selectedItems();
for (int i=0;i<cnt;i++)
QGraphicsItem* item=selected_items.at(i);
item->setSelected(false); //清除选择虚线框
item->clearFocus();
group->addToGroup(item); //添加到组合
group->setFlags(QGraphicsItem::ItemIsMovable
| QGraphicsItem::ItemIsSelectable
| QGraphicsItem::ItemIsFocusable);
group->setZValue(++frontZ);
// group->clearFocus();
scene->clearSelection();
group->setSelected(true);
以上是关于QGraphicsItemGroup组合中的一些细节的主要内容,如果未能解决你的问题,请参考以下文章
如何设置 QGraphicsItemGroup 的显示范围?