2016-04-08 101 views
0

我使用另外,QTextDocument :: drawContents画上一个窗口简单的HTML(画家)设置另外,QTextDocument画家的矩形(如油漆)

我想这样做在窗口中的一些边缘内的图纸,但我没有看到直接指定绘画的目标矩形(在画家/窗口中)。

我想一些方法来做到这一点。

  • 使用QTextDocuments :: setMargin(虽然这并不允许左/上不同的值

  • 配售HTML到一个病急乱投医<div>

  • 应用平移变换的画家。

但是,这一切似乎有点太多了我想做的事情,我想,如果我丢失的东西直(如您的QPainter ::的drawText做,你告诉目标矩形)

回答

1

设置textWidth财产到文本应该适合的区域的宽度。如果文件太多以至于不合适,则您传递给drawContents的剪切矩形将垂直切除文本;当然你不能做太多的事情。

所以,这将是缺少的功能,你后:

void drawContents(QPainter * p, QTextDocument & doc, const QRectF & rect) { 
    p->save(); 
    p->translate(rect.topLeft()); 
    doc.setTextWidth(rect.width()); 
    doc.drawContents(p, rect); 
    p->restore(); 
} 

是的,你确实需要通过几个跳火圈,这就是为什么它需要被提取出来。也许可惜,drawContents的类似超载不存在。