首页 > 其他分享 >QT之QWidget::paintEngine: Should no longer be called的解决办法

QT之QWidget::paintEngine: Should no longer be called的解决办法

时间:2023-10-09 14:24:01浏览次数:40  
标签:longer no Should pix ui QWidget 100 include MainWindow

这个还是以前遇到的,今天突然想起来,就决定重现一下当初的错误,以及错误的代码。

报错是这个样子的:

QWidget::paintEngine: Should no longer be called

QPainter::begin: Paint device returned engine == 0, type: 1

其实这个原因很简单,来看看报错的代码:

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QPixmap>
#include <QPainter>
 
void MainWindow::paintEvent(QPaintEvent *e)
{
 
}
 
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    QPixmap pix;
    pix.load(":/new/prefix1/QT.png");
    QPainter p(this);
    p.drawPixmap(100,100,100,100,pix);
}
 
MainWindow::~MainWindow()
{
    delete ui;
}

而去掉这个错误,只需要这样:

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QPixmap>
#include <QPainter>
 
void MainWindow::paintEvent(QPaintEvent *e)
{
    QPixmap pix;
    pix.load(":/new/prefix1/QT.png");
    QPainter p(this);
    p.drawPixmap(100,100,100,100,pix);
}
 
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
   
}
 
MainWindow::~MainWindow()
{
    delete ui;
}

画图这类事情要放到paintevent函数里面去做。这个具体的机制不知道。

 

转 : https://blog.csdn.net/xuancailinggan/article/details/50603141

 

标签:longer,no,Should,pix,ui,QWidget,100,include,MainWindow
From: https://www.cnblogs.com/fps2tao/p/17751606.html

相关文章

  • 解决QWidget::paintEngine: Should no longer be called QPainter::begin: Paint devi
    标题问题同时在运行后会附带以下问题:QPainter::setPen:PainternotactiveQPainter::font:PainternotactiveQPainter::setFont:Painternotactive或QWidget::paintEngine:ShouldnolongerbecalledQPainter::begin:Paintdevicereturnedengine==0,type:1以......
  • 编译优化概念:Canonicalization
      编译优化概念:Canonicalization-知乎(zhihu.com) anonicalization(规范化)是编译器IR(intermediaterepresentation)设计中的一个重要部分,它使代码转换(transformations)变得简单高效。大多数编译器都有canonicalizationpass,对于后续进行编译器优化也起到很大作......
  • MDC (Mapped Diagnostic Context)
    MDC是org.slf4j包下的一个类,它的全称是MappedDiagnosticContext,我们可以认为它是一个线程安全的存放诊断日志的容器。MDC的底层是用了ThreadLocal来保存数据的。我们可以用它传递参数。例如现在有这样一种场景:我们使用RestTemplate调用远程接口时,有时需要在header中传递信息,......
  • 《安富莱嵌入式周报》第324期:单对以太网技术实战,IROS2023迪士尼逼真机器人展示,数百万
    周报汇总地址:http://www.armbbs.cn/forum.php?mod=forumdisplay&fid=12&filter=typeid&typeid=104 更新一期视频教程:第8期ThreadX视频教程:应用实战,将裸机工程移植到RTOS的任务划分,驱动和应用层交互,中断DMA,C库和中间件处理等注意事项https://www.armbbs.cn/forum.php?mod=vie......
  • Astronomaly:利用 CNN 和主动学习识别 400 万张星系图像中的异常
    星系中的异常现象是我们了解宇宙的关键。然而,随着天文观测技术的发展,天文数据正以指数级别增长,超出了天文工作者的分析能力。尽管志愿者可以在线上参与对天文数据的处理,但他们只能进行一些简单的分类,还可能会遗漏一些关键数据。为此,研究者基于卷积神经网络和无监督学习开发了As......
  • pip安装报错:is not a supported wheel on this platform
    可能的原因1:安装的不是对应python版本的库,下载的库名中cp27代表python2.7,其它同理。 可能的原因2:(下载的是对应版本的库,然后仍然提示不支持当前平台)我下载到的numpy库文件名:numpy-1.10.4+mkl-cp27-cp27m-win32.whl使用pip安装(在命令行中):pipinstall numpy-1.10.4+mkl-......
  • 成功解决WARNING: You do not appear to have an NVIDIA GPU supported by the 430.34
     https://blog.csdn.net/qq_41185868/article/details/97521492?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522169682165516800215061872%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=169682165516800215061872&......
  • 【node爬虫】node爬虫实用教程
    准备工作通过指令npminit初始化文件夹,会获得package.json项目说明书。爬虫必备工具:cheerio;通过在终端输入npmicheerio,即可将文件装到项目里。cheerio 是 jquery 核心功能的一个快速灵活而又简洁的实现,主要是为了用在服务器端需要对 DOM 进行操作的地方。大家可以简......
  • 新版IDEA 出现ClassCastException: com.sun.proxy.$Proxy25 cannot be cast to com.su
    项目中使用lombok或者mapStruct,运行项目时报错运行某些较旧的代码,报错java.lang.ClassCastException:com.sun.proxy.$Proxy25cannotbecasttocom.sun.tools.javac.processing.JavacProcessingEnvironment如图解决:在settings–>Build,Execution,deployment–>Compiler在Sh......
  • 基于Node.js的大文件分片上传
    我们在做文件上传的时候,如果文件过大,可能会导致请求超时的情况。所以,在遇到需要对大文件进行上传的时候,就需要对文件进行分片上传的操作。同时如果文件过大,在网络不佳的情况下,如何做到断点续传?也是需要记录当前上传文件,然后在下一次进行上传请求的时候去做判断。前端1.index.ht......