【问题标题】:How do I tell QListView to resize to fit?如何告诉 QListView 调整大小以适应?
【发布时间】:2017-08-07 16:59:22
【问题描述】:

我有一个 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);

有什么建议吗?

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

【问题讨论】:

  • 您是否尝试将QListView::resizeMode 设置为QListView::AdjustQListView::uniformItemSizes 设置为false
  • 是的。 resizeMode 设置为调整。 uniformItemSizes - 我没有改变(默认为 false)。我可以看到不同尺寸的物品。
  • 小部件中是否实现了最小尺寸提示方法?
  • @Jay 不,我没有。问题似乎在于小部件之间的间距,而不是小部件的大小 - 如选择所示。

标签: qt qlistview


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-30
    • 1970-01-01
    • 2017-06-06
    • 2015-12-07
    • 1970-01-01
    • 2012-03-13
    相关资源
    最近更新 更多