resizeColumnToContent不使用自定义模型和删除

2024-09-27 23:19:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用QTreeView在4列中显示自定义模型。这基本上是可行的,但是我不能让resizeColumnToContent工作。在

我试过了

ui->treeSkills->header()->setSectionResizeMode(0, QHeaderView::ResizeToContents);
ui->treeSkills->header()->setSectionResizeMode(1, QHeaderView::ResizeToContents);
ui->treeSkills->header()->setSectionResizeMode(2, QHeaderView::ResizeToContents);
ui->treeSkills->header()->setSectionResizeMode(3, QHeaderView::ResizeToContents);

还有这个:

^{pr2}$

设置数据之前和之后。似乎什么都不管用。在

一种猜测是,当某个角色被请求时,我可能必须在model::data()中返回一个大小。但这是不可能的,因为每个单元格的实际文本/内容是在委托中确定的,而不是在模型中确定的。在

另一种猜测是在paint()内更改委托的rect大小,如下所示:

options.rect.setWidth(options.rect.width() * 2);
p_painter->save();
p_painter->setClipRect(options.rect);

drawBackground(p_painter, options, p_index);
drawDisplay(p_painter, options, options.rect, text);
drawFocus(p_painter, options, options.rect);

p_painter->restore();

但是,又一次,一切都没有改变。在

有什么办法吗? 考虑到布局在Qt中的其他地方都能很好地工作,这真是个奇怪的问题。在


Tags: 数据模型rectuioptionsheaderpainter委托

热门问题