这是因为 字体的 空格 和其它 可见字符 宽度是不同的。
比如a,b,c这些字符的宽度是9个像素,但是 空格 " ” 的宽度可能只有8个像素。其它字符也存在这样的问题。用下面的代码就能看出像素多少了。
QFontMetrics metrics(mListView->font());
qDebug()<<metrics.width("h ");
qDebug()<<metrics.width("hah ");
但是qtcreator控制台打印出来看,却是完全对齐的。
所以要特别注意这个坑。
有两种方法解决:
1,搞个委托类,就可以自己控制文本的绘制过程了
2. 不用qlistview,用qtreeview
这里,选择第二种了,利用多列的性质,就能让控件帮我们对齐了。