我重写了了QCanvasText的virtual void draw ( QPainter & painter )函数,使得QCanvasText可以用QPainter来画图,但是怎么界面重绘之后字就没有了啊?
class RSCanvasText: public QCanvasText
{
public:
RSCanvasText( const QString & t, QCanvas * canvas );
~RSCanvasText();
void setRect(QRect);
protected:
virtual void draw(QPainter&);
private:
QRect m_rect;
};
void RSCanvasText::draw(QPainter & p)
{
p.setFont(font());
p.setPen(color());
p.drawText(m_rect,textFlags(), text());
}
void RSCanvasText::setRect(QRect rect)
{
m_rect = rect;
}
主函数
QRect *rect = new QRect(100,100,140,80);
RSCanvasText *Text = new RSCanvasText( "dddddddd",canvas );
Text->setFont(QFont( "Times", 17, QFont::Bold ));
Text->setTextFlags(Qt::AlignCenter);
QRect rect2 = Text->boundingRect();
rect2.moveCenter(rect->center());
Text->setRect(rect2);
Text->show();
求高手指点