• 2810阅读
  • 0回复

[讨论]请教QPdfWriter中QPainter的CompositionMode的问题 [复制链接]

上一主题 下一主题
离线roundtwo
 

只看楼主 倒序阅读 楼主  发表于: 2018-01-18
各位高手,
  
不知道有谁知道QPdfWriter的QPainter能否使用CompositionMode。
我用如下代码测试,发现pdf writer不能用 composition mode,而 QIamage能用,
  
代码如下:
  
// 绘制文本
void MainWindow::drawText(QPainter *painter, const QString &str)
{
     painter->drawText(QPoint(10, 10), "strdkdkdk ");
}
  
// 用 multipy 模式绘制矩形
void MainWindow::drawRect(QPainter *painter, const QRectF &rect)
{
     painter->setCompositionMode(QPainter::CompositionMode_Multiply);
     painter->fillRect(rect, Qt::yellow);
}
  
void MainWindow::testPdfWriter()
{
     QString str("hello, word");
     QRectF rect(0, 0, 200, 100);
  
     QPdfWriter writer("e:\\testPdfWriter.pdf");
     writer.setPageSize(QPageSize(QPageSize::A4));
     writer.setResolution(72);
     QPainter painter;
     painter.begin(&writer);
     drawText(&painter, str);
     drawRect(&painter, rect);
     painter.end();
  
     QImage img(500, 500, QImage::Format_RGBA8888);
     painter.begin(&img);
     drawText(&painter, str);
     drawRect(&painter, rect);
     painter.end();
     img.save("e:\\testPdfWriter.png");
}
  
结果是png文件里能看到字符hello, word,




而pdf文件里只有黄色矩形,字符被覆盖了。

快速回复
限100 字节
 
上一个 下一个