我正在开发一个 GUI,它允许用户在背景图片上使用鼠标/QSpinBox 事件修改椭圆。
我想设置它,以便当用户单击椭圆时,椭圆会改变颜色并被“选中”。
我将 QGraphicsView/Scene 与 QGraphicsEllipseItem 一起使用。这是我的问题,因此setPen(QPen & const)
调用是一个参考:
- 如果我在堆栈上分配一支笔并将其传入,则会出现段错误。
- 如果我在堆上分配笔,当我设置新笔时它不会被删除
- 访问器方法返回笔的副本
无论如何,我必须接近这个错误,可以提供任何建议吗?
PS - 我想避免制作另一个成员变量。我将有很多椭圆,每个椭圆都不应该有自己的笔变量!
此代码将导致段错误:
void MyClass::SetupEllipses()
{
QPen pen();
pen.setColor(QColor(255,0,0));
pen.setWidth(2);
m_ellipse = new QGraphicsItemEllipse(); //This is a member variable of MyClass
m_ellipse->setRect(some ssize here);
m_ellipse->setPen(pen);
m_graphicsview->scene()->addItem(m_ellipse); //m_graphicsview is also a member variable of MyClass and has had a scene added to it.
}