如何告诉QListView调整大小以适应?

时间:2013-01-28 13:50:21

标签: qt qlistview

我有一个QListView并分配了一个模型和一个委托。我用它来在水平条中显示图像,如下所示

enter image description here

在用户事件中,数据在模型中更新。一个这样的事件导致图像的宽度减小如下(#4)。

enter image description here

我在相应的索引上发出dataChanged,只重绘了相关的小部件。因此,#4和#5之间存在间隙,不会被填满。我认为必须有一种方法来刷新所有可见行 - 但我无法找到它。

我尝试了以下操作,但它们不起作用:

1. viewport()->updateGeometries()

2. viewport()->update()

3. I tried changing the width to see if it refreshes
    int curWidth = mp_mylistview->width();
    this->mp_mylistview->setFixedWidth(curWidth + 1);
    this->mp_mylistview->setFixedWidth(curWidth);

有什么建议吗?

注意:上图是用于说明的样本,而不是原件。如果您需要代码,我需要在发布之前过滤掉机密信息。

1 个答案:

答案 0 :(得分:2)

我所要做的就是emit layoutChanged()作为dataChanged()的后续行动。