我将 QHeaderView 子类化为水平标题并重新实现了它的 paintSection() 方法以允许将文本(例如“Axis X1”)添加到标题标签。但是,所有自动调整水平标题大小以使原始文本 + 绘制的文本适合标题的所有尝试都失败了。
调整到标题文本的大小时调整大小似乎可以正常工作,但在将内容添加到标题时失败,因为看起来 Qt 的调整大小算法不考虑绘制的内容?我的代码如下:
请特别注意下面的 void HHeaderView::paintSection(QPainter *painter, const QRect &rect, int logicalIndex) const 方法。这些行:
painter->save();
painter->drawText(rect,Qt::AlignCenter,"Axis X1 "+headertext);
painter->restore();
return;
将内容即“Axis X1”添加到标题标签headertext。不幸的是,当调整列的大小以适应内容并且标题内容被剪裁时,Qt 似乎没有考虑这些额外内容的大小。