如何在QtextEdit中绘制形状

How to drawing a shapes in QtextEdit

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

此致。

当然有可能,如果我没理解错的话。您所需要的只是实现您自己的从 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);
}