行之88 2020-10-15 15:24 采纳率: 0%
浏览 790

qt,在MainWindow中的widget绘图,要怎么做才行?

最近初学qt绘图,在MainWindow的paintEvent()中绘图,直接在MainWindow中绘图是可以的,但如果要在MainWindow中的widget中绘图,就报这个错
QWidget::paintEngine: Should no longer be called
QPainter::begin: Paint device returned engine == 0, type: 1
,代码如下,到底哪里有问题

void MainWindow::paintEvent(QPaintEvent *event)
{
    //    QPainter painter(this);                     ①
                QPainter painter(ui->widget);         ②
    {
        painter.setPen(QPen(QColor(255, 0, 0), 3));

        painter.drawLine(QPointF(50, 0), QPointF(60, 50));

        painter.setBrush(QColor(255, 160, 90));
        painter.drawRect(50, 50, 100, 100);

        painter.setFont(QFont("Arial", 30));
        painter.drawText(200, 200, 100, 100, Qt::AlignCenter, "Qt");
     //   QImage image("./img103.png");
     //   painter.drawImage(0, 0, image, );

     //   painter.drawPixmap(50, 50, 200, 100, QPixmap("./img103.png"));

        painter.end();
    }
}

①的写法,代表直接在MainWindow绘图,没问题
但②的写法,是想要在widget中绘图,编译没问题,运行时就报错,到底该怎么做呢
MainWindow布局如下
图片说明

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-09-20 17:48
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

悬赏问题

  • ¥60 QQOP数据,什么是op数据号,怎么提取op数据!能不能大量提取(语言-c语言)
  • ¥15 matlab代码 关于微分方程和嵌套的分段函数。
  • ¥15 把VMware项目复制到另一台电脑
  • ¥15 onlyoffice编辑完后立即下载,下载的不是最新编辑的文档
  • ¥15 求caverdock使用教程
  • ¥15 Coze智能助手搭建过程中的问题请教
  • ¥15 12864只亮屏 不显示汉字
  • ¥20 三极管1000倍放大电路
  • ¥15 vscode报错如何解决
  • ¥15 前端vue CryptoJS Aes CBC加密后端java解密