C++ 在其父级前面绘制qgraphicsitem
我想使用QGraphicsItem中的paint函数绘制一个圆形矩形,我有一个父项,我想在它前面绘制它的子项,但我不知道如何做? 我还有一个问题,我想根据它们的父位置列出这些项目,但是位置是静态的,我如何根据父位置来定位项目 我的绘画功能:C++ 在其父级前面绘制qgraphicsitem,c++,qt,qgraphicsitem,C++,Qt,Qgraphicsitem,我想使用QGraphicsItem中的paint函数绘制一个圆形矩形,我有一个父项,我想在它前面绘制它的子项,但我不知道如何做? 我还有一个问题,我想根据它们的父位置列出这些项目,但是位置是静态的,我如何根据父位置来定位项目 我的绘画功能: void flipedWidget::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *w) { Q_UNUSED(w) Q_UNUSED(op
void flipedWidget::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *w)
{
Q_UNUSED(w)
Q_UNUSED(option)
painter->setPen(Qt::NoPen);
QBrush *brush;
if(!m_color.isEmpty())
brush = new QBrush(QColor(m_color)); // set background color
else
brush = new QBrush("#cccccc");
painter->setBrush(*brush);
painter->drawRoundedRect(boundingRect(), 10, 10);
delete brush;
}
这是两个问题。一个主题=一个问题。您的代码中到底有什么不起作用?在将painter和option*传递到此函数之前,您如何处理它们?是否检查了boundingRect返回的值?可能是屏幕外的,或者很小。此外,不需要为QBrush分配新的,然后将其删除;只需将其分配到堆栈上即可。默认情况下,子对象绘制在父对象之前,并相对于父对象进行定位。你可能还做错了什么。