标题:[急]如何让子图元放大后仍然在父图元所包容的区域里(QGraphicsItem)
作者:christina
日期:2009-02-26 09:33
内容:
我用QGraphicsView框架,让一个绘图类继承自QGraphicsItem,让一个坐标类继承自QGraphicsItem,绘图类在坐标类中绘图,相当于绘图类是坐标类的子图元,然后我通过对子图元进行放大,但是子图元显示的范围超出了父图元的区域,我如何让在父图元区域之外的图形不显示呢?还有,如果我再对父图元进行放大,怎么让父图元和子图元都在固定区域内进行放大呢?请大家一定要帮忙看看呀,请指教!谢谢!
#1 [christina 02-26 13:53]
怎么没有人回应呀?请各位大侠帮帮忙指点一下呀,谢谢
#2 [christina 03-02 20:26]
我在论坛里发了几天了,但是没有人回答我,所以只有再次求助大家了,请路过的高手们一定要帮帮忙呀!真的越搞越晕了
我在网上找了一点资料 ,说是通过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);
}
但是我运行后,仍然是子图元显示在父图元包容矩形框外面的图形仍然
#3 [lanmanck 08-27 21:40]
主要是没有人会,回答不了你,呵呵