0

我有一个 QListView,我可以通过调用 updateGeometry 来适应内容。现在我想为它制作动画。我不能使用 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 回答