我有一个 QListView,我可以通过调用 updateGeometry 来适应内容。现在我想为它制作动画。我不能使用 resizeEvent,因为它是在小部件调整大小后调用的。开始这个动画的正确位置是什么,因此内部调用了哪些成员?
问问题
152 次
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 回答