我意思是如何控制这个行间距呢,跟rect有关系吗,比如如果我希望行间距是行高的0.5,那么对于有nCount个字符的字符串,每个字符后面加一个"\n”,最后一个字符后面不需要加"\n",这个rect的行高是设置为多少呢。是 (2*nCount-1)* 1.5 * 行lineheight,还是 nCount * 1.5 * lineheight.或者其他值
for(int i = 0; i < nCount - 1; i++)
{
strTemp += text.mid(i,1);
strTemp += "\n";
}
strTemp += text.right(1);
//rect.setRect(x, y, lineheight*2, (2 * nCount-1)*lineheight);
rect.setRect(x, y, lineheight*2, (nCount + 1) * 1.5 * lineheight);
painter->drawText(rect,Qt::AlignCenter,strTemp);
前者的情况下,当多列的情况下,随着nCount不同的时候,起始显示位置有偏差。
后者的情况下,字符不能完全显示。
主要是“\n” 不知道如何控制成0.5*lineheight
我需要确切知道列高,来画控制点。
如果用下面这段代码:则无法控制同一列的文字和字母居中对齐
for(int i = 0; i < nCount; i++)
{
strTemp = text.mid(i,1);
painter->drawText (QPointF(x,y + i*lineheight*1.5),strTemp);
}
所以上面两种方式竖排文字的时候,各有缺陷。