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