我现在有一个带有水平标题标签的QTreeWidget,我的意图是只画,垂直地画headerLabels,其余的画水平。
我不想在QTreeWidget的paintEvent方法中重新实现所有东西,所以我正在考虑控制头标签的喷漆器,然后调用超类paintevent。
与此类似的东西:
class MyTreeWidget: public QTreeWidget
{
public void paintEvent (QPaintEvent *e)
{
..... //Draw header labels vertically
QTreeWidget::paintEvent(e);
}
}当插入\n时,我尝试在每个字符后面插入一个headerLabels,但这是一个非常难看的黑客,我并不真正想做。
我的问题是,我真的不知道如何获得标题项目或如何绘制他们垂直。有什么想法吗?
发布于 2012-07-30 13:52:23
我相信您希望创建一个QHeaderView-derived类,在该类中更改paintEvent( QPaintEvent* );的默认实现。
然后将自定义的QHeaderView-derived类安装为MyTreeWidget类的水平标头。
发布于 2012-07-30 13:55:19
如果使用的是自定义paintEvent(),则可以手动将字符与QPainter::DrawText()放在一起。要么逐个打印它们,然后每次增加输出的y坐标,要么尝试使用Qt::TextWordWrap标志使它们自动环绕空格(在这种情况下,我想我还没有尝试过)。
https://stackoverflow.com/questions/11722740
复制相似问题