
如何让QGraphicsView里的item绕中心点放大
1个回答
2015-09-11
展开全部
我的代码可以啊,如下
void MainWindow::sceneScaleChanged(const QString &scale)
{
double newScale = scale.left(scale.indexOf(tr("%"))).toDouble() / 100.0;
QMatrix oldMatrix = view->matrix();
view->resetMatrix();
view->translate(oldMatrix.dx(), oldMatrix.dy());
view->scale(newScale, newScale);
if (scene->selectedItems().count() > 0 )
{
QGraphicsItem * Item = scene->selectedItems().first();
//view->centerOn(Item); //以第一个选中的图形为中心
QPointF sceneP=Item->mapToScene(0,0);
view->centerOn(sceneP); //以第一个选中的图形位置为中心
}
}
void MainWindow::sceneScaleChanged(const QString &scale)
{
double newScale = scale.left(scale.indexOf(tr("%"))).toDouble() / 100.0;
QMatrix oldMatrix = view->matrix();
view->resetMatrix();
view->translate(oldMatrix.dx(), oldMatrix.dy());
view->scale(newScale, newScale);
if (scene->selectedItems().count() > 0 )
{
QGraphicsItem * Item = scene->selectedItems().first();
//view->centerOn(Item); //以第一个选中的图形为中心
QPointF sceneP=Item->mapToScene(0,0);
view->centerOn(sceneP); //以第一个选中的图形位置为中心
}
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询