Qt5.6绘制多行文字

Qt5.6 drawing multi-line text

我想绘制带有对齐选项的多行文本字符串,Qt 中的任何 drawText 函数都可以处理这个问题吗?

我想传递一个带有对齐选项的字符串 "LINE 1\nLINE 2\nLINE 3\n",并围绕指定的 X、Y 点绘制文本。

到目前为止,我将字符串拆分为“\n”,然后单独绘制线条。

我还需要计算绘制文本所需的边界矩形,这样我就可以创建一个带有几何图形的小部件来包含文本。

我已经搜索了一个解决方案并在几个网站上阅读 QPainter::drawText 将执行此操作,但是当我将 drawText 与包含 \n 的字符串一起使用时,我得到一行文本,其中显示了 \n在显示屏上。

我决定编写自己的例程来管理它,我有一个锚点,我将定位文本并在锚点上对齐。

所需的阶段是:

  1. 将文本拆分成行
  2. 使用 QFontMetrics 确定边界矩形以确定每行的大小。
  3. 使用指定的对齐方式计算出边界矩形内每条线相对于另一条线的位置。
  4. 绘制文本。