Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. Chinese
  4. 为什么QPrinter生成的图片会重叠?
Forum Updated to NodeBB v4.3 + New Features

为什么QPrinter生成的图片会重叠?

Scheduled Pinned Locked Moved Solved Chinese
2 Posts 1 Posters 546 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • C Offline
    C Offline
    cainiao123
    wrote on last edited by
    #1

    我写了一段按钮点击事件代码,用QPrinter.drawText()生成图片,放到label里显示。
    点击多次,就会出现图片重叠的情况,再点几次又好了。再点几次又重叠,如此反复。

    我不想这样,怎么才能避免图片重叠?

    b299b4e6-d0d9-4889-af28-fee7b1c9afe6-image.png
    void MainWindow::on_pushButton_clicked()
    {
    static int i=0;

    QImage *mainimg = new QImage();
    *mainimg = QImage(240+1,240+1,QImage::Format_ARGB32); //size 240*240
    QPainter painter(mainimg);
    
    painter.setPen(QColor(Qt::black));
    painter.drawRect(0,0,240,240);
    painter.drawLine(0,120,240,120);
    
    QFont f12(u8"宋体",12);
    painter.setFont(f12);
    painter.drawText(10,20,"测试重复生成图片");
    
    char text[100];
    sprintf(text,"%d%d%d%d%d",i,i,i,i,i);
    painter.drawText(10,50,text);
    qDebug()<<i++<<":"<<text;
    painter.end();
    
    QPixmap map = QPixmap::fromImage(*mainimg);
    ui->label_test->setPixmap(map);
    
    delete mainimg;
    

    }

    1 Reply Last reply
    0
    • C Offline
      C Offline
      cainiao123
      wrote on last edited by
      #2

      QT中文社区都没人啊,
      这个问题是因为没有setbrush(backgroud color),导致背景是随机的~
      感谢 @Christian-Ehrlicher 的回复,

      1 Reply Last reply
      0

      • Login

      • Login or register to search.
      • First post
        Last post
      0
      • Categories
      • Recent
      • Tags
      • Popular
      • Users
      • Groups
      • Search
      • Get Qt Extensions
      • Unsolved