我试图在Qt中创建一个与impoly(来自matlab)类似的函数.现在,我有一个QGraphicsView的子类,并将虚拟函数“drawBackground”设置为:
void roiwindow::drawBackground(QPainter *painter,const QRectF &rect)
{
painter->save();
painter->drawImage(rect,*refimage);
painter->restore();
}
这很有效,基本上就是我想要的背景层.现在,我正在尝试添加最终将充当多边形节点的圆圈.我这样做是通过使用:
QGraphicsView *view = new QGraphicsView(this);
view->show();
QGraphicsEllipseItem *e1;
e1 = this->addEllipse(20,20,30,QColor(0,0),Qt::white);
e1->setFlags(QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsMovable);
这就是我想要的.但是,有一个问题,当我点击并拖动椭圆时,椭圆的背景是* refimage的缩小版本…这会在屏幕上留下一些条纹,但当我点击另一个窗口时它会消失或最小化窗口. QGraphicsItem是否也调用drawBackground?如果是这样,它似乎只在拖动项目时调用它.有关如何更好地编码的任何建议吗?谢谢.