设置QTextDocument画家的矩形(在哪里画)

时间:2016-04-08 11:37:23

标签: html qt qtextdocument

我使用QTextDocument :: drawContents(画家)在一个简单的窗口上绘画

我想在窗口的某些边距内进行绘制,但我没有看到指定绘画的目标矩形的直接方法(在画家/窗口中)。

我想有几种方法可以做到:

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

  • 将html放入样式化的<div>

  • 将转换变换应用于画家。

但是对于我想要做的事情,所有这些似乎有点太多了,我想如果我错过了一些东西(就像你使用QPainter :: drawText那样告诉目标矩形)

1 个答案:

答案 0 :(得分: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的类似重载不存在。