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