1

我使用QGraphicsView,QGrapichsSceneQGraphicsItem来绘制一些图表。我已经实现QGraphicsItem::paint了用于绘制文本(图表的值)的功能,但并不是每次都必须绘制新的东西时调用它。我的paint功能

    void CLabelItem::paint(QPainter *painter, 
const QStyleOptionGraphicsItem* /*option*/, QWidget* /*widget = 0*/)
{

    if ( GetValue() < 0 )
    {
        return;
    }
    painter->drawText(boundingRect(), m_value.toString());
}

所以我的问题是 - 为什么QGraphicsItem::paint不能被调用,我怎样才能让它被调用?

4

2 回答 2

3

您需要QGraphicsItem::update()从修改变量的函数中调用m_value以触发重绘。

于 2013-05-11T16:22:16.633 回答
0

一般用 Qt 的图形项目在paintEvent被调用的时候被绘制,然后你可以在一个paint函数里面处理绘制。

于 2013-05-11T14:34:35.793 回答