1

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

在此处输入图像描述

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

在此处输入图像描述

我在相应的索引上发出一个 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);

有什么建议么?

注:以上图片为示例图,非原图。如果您需要代码,我需要在发布之前过滤掉机密信息。

4

1 回答 1

2

我所要做的就是emit layoutChanged()跟进dataChanged().

于 2013-02-04T13:13:15.087 回答