我想做一个相当简单的绘图,在圆的中心写下两段文字。我的代码:
painter->drawText(QRectF(0, 0, m_iSize, m_iSize), Qt::AlignCenter, m_sAlias + "\n" + m_sCode);
where m_iSize
是圆的大小,m_sAlias
是一个短文本,例如"R1" and m_sCode
是另一个短文本,例如"31".
问题是上面的代码将绘制两行文本,以便它们在水平方向上恰好相距一个像素。不幸的是它是清晰可见的。我怀疑“\n”一定会对它做什么,但我不知道。也不知道如何解决。
我当前的解决方法是单独绘制文本,如下所示:
painter->drawText(QRectF(1, 0, m_iSize, m_iSize), Qt::AlignCenter, m_sAlias + "\n");
painter->drawText(QRectF(0, 0, m_iSize, m_iSize), Qt::AlignCenter, "\n" + m_sCode);
但这只是愚蠢的,即使它实际上按预期工作(我将顶部文本向右移动一个像素)。
我在这里缺少什么?如果需要的话我可以提供截图。
截图:
错误(第一行代码),行彼此移动了一个像素
正确(第二个双行代码),行对齐正确