动画调整QListView的大小

时间:2014-09-10 12:14:25

标签: c++ qt qt5 qpropertyanimation

我有一个QListView,我可以通过调用updateGeometry来适应内容。现在我想给它制作动画。我无法使用resizeEvent,因为在小部件调整大小后它是calles 。什么是开始这个​​动画的正确的地方,ergo内部调用哪些成员?

1 个答案:

答案 0 :(得分: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。我认为它不仅仅是这个。希望它有所帮助!