如何在QtextEdit中绘制形状

时间:2015-03-01 17:31:34

标签: qt drawing qtextedit

我目前正在使用Qtextedit编写文本编辑器,我想在编辑器中绘制一个像三角形,正方形和椭圆形等的形状来丰富文档。  所以我想知道是否可以用Qtextedit和Qtextedit做到这一点。  实际上我是Qt的新手所以任何想法任何教程任何链接都将受到高度赞赏  提前致谢,对不起我的英语。

最好的问候。

1 个答案:

答案 0 :(得分:3)

如果我理解正确的话,当然可以。您只需实现从QTextEdit派生的自己的TextEdit并重新实现paintEvent()

例如:

<强> QMyTextEdit.h

class QMyTextEdit : public QTextEdit
{
public:
    QMyTextEdit(QWidget *parent = 0);

protected:
    void paintEvent(QPaintEvent * event);
};

<强> QMyTextEdit.cpp

QMyTextEdit::QMyTextEdit(QWidget *parent) :
    QTextEdit(parent)
{
}

void QMyTextEdit::paintEvent(QPaintEvent *event)
{
    QTextEdit::paintEvent(event);
    QPainter painter(viewport());
    QPen pen;
    pen.setColor(Qt::blue);
    pen.setWidth(2);
    painter.setPen(pen);
    painter.setRenderHint(QPainter::Antialiasing, true);
    QPoint center = viewport()->rect().center();
    painter.drawRect(center.x() - 10,center.y() - 10,20,20);
}