• 6340阅读
  • 3回复

[急]如何让子图元放大后仍然在父图元所包容的区域里(QGraphicsItem) [复制链接]

上一主题 下一主题
离线christina
 
只看楼主 倒序阅读 楼主  发表于: 2009-02-26
我用QGraphicsView框架,让一个绘图类继承自QGraphicsItem,让一个坐标类继承自QGraphicsItem,绘图类在坐标类中绘图,相当于绘图类是坐标类的子图元,然后我通过对子图元进行放大,但是子图元显示的范围超出了父图元的区域,我如何让在父图元区域之外的图形不显示呢?还有,如果我再对父图元进行放大,怎么让父图元和子图元都在固定区域内进行放大呢?请大家一定要帮忙看看呀,请指教!谢谢!
抓住眼前的机遇,好好学习!
离线christina
只看该作者 1楼 发表于: 2009-02-26
怎么没有人回应呀?请各位大侠帮帮忙指点一下呀,谢谢
抓住眼前的机遇,好好学习!
离线christina
只看该作者 2楼 发表于: 2009-03-02
我在论坛里发了几天了,但是没有人回答我,所以只有再次求助大家了,请路过的高手们一定要帮帮忙呀!真的越搞越晕了
我在网上找了一点资料 ,说是通过QGraphicsItem::itemChange()函数来实现,下面附上我的代码,
QVariant draw2dgraph::itemChange(GraphicsItemChange change, const QVariant &value)
{
if(ItemTransformChange == change && parentItem() )
{
QTransform trans = transform();
QRectF rect = trans.mapRect(boudingRect());
if(parentItem()->boundingRect().size()!=rect.size())
{
rect = parentItem()->boundingRect();
}
}
return QGraphicsItem::itemChange(change,value);
}


void draw2DGraph::zoomIn()
{
scale(1.2,1.2);
}

但是我运行后,仍然是子图元显示在父图元包容矩形框外面的图形仍然
抓住眼前的机遇,好好学习!
离线lanmanck

只看该作者 3楼 发表于: 2009-08-27
主要是没有人会,回答不了你,呵呵
精彩博客:labisart.com
快速回复
限100 字节
 
上一个 下一个