1

QListView があり、モデルとデリゲートを割り当てました。以下のように水平バーに画像を表示するために使用しています

ここに画像の説明を入力

ユーザー イベントでは、モデル内のデータが更新されます。そのようなイベントの 1 つにより、以下のように画像の幅が縮小されます (#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 に答える