0
点赞
收藏
分享

微信扫一扫

QT在QPlainTextEdit和QTextEdit中paintEvent无法绘制

晗韩不普通 2022-02-10 阅读 60

paintEvent无法绘制


使用QPlainTextEdit和QTextEdit重载paintEvent重新绘制时,出现了一下的报错

QWidget::paintEngine: Should no longer be called
QPainter::begin: Paint device returned engine == 0, type: 1

通过Google和百度,发现一堆都是别人抄的,通过观看别人开源的代码和官方的文档,试验后发现在paintEvent中只需要

	//添加这句话
    QPainter painter(viewport());
    painter.begin(this);
    painter.setPen(Qt::red);
    painter.drawRect(10, 50, 200, 500);
    painter.end();

viewport即物理设备绘图区,window是指逻辑绘图区,可以通过painter.setViewport()或者painter.setWindow()来设置相应的区域绘制。

举报

相关推荐

0 条评论