0

updateGeometry を呼び出してコンテンツに適合させることができる QListView があります。今、私はそれをアニメーション化したいと思っています。ウィジェットのサイズが変更された後に呼び出されるため、resizeEvent は使用できません。このアニメーションを開始する適切な場所はどこですか?どのメンバーが内部的に呼び出されるのでしょうか?

4

1 に答える 1

1

さて、QListView をそのままにして、代わりにそのモデルに集中する必要があります。次のようなものがあるとしましょう:

QListView *myListView;

その場合、そのモデルに注意を払う必要があります。つまり、次のことを意味します。

QAbstractItemModel *myListModel(myListView->model());

いくつかのスロットを接続できます (アニメーションを開始するタイミングに応じて、データがビューによってフェッチされる前または後に)、おそらく次のようなものです。

connect(myListModel, &QAbstractItemModel::rowsAboutToBeInserted, myHandlingObject, &MyHandlingObjectClass::myHandlingSlot);

また:

connect(myListModel, &QAbstractItemModel::rowsInserted, myHandlingObject, &MyHandlingObjectClass::myHandlingSlot);

MyHandlingObjectClass::myHandlingSlot() スロット内で、最終的に QPropertyAnimation を開始します。これ以上はないと思います。それが役に立てば幸い!

于 2014-09-10T12:54:35.670 に答える