Анимировать изменение размера QListView

У меня есть QListView, который я могу вписать в содержание, вызвав updateGeometry. Теперь я хочу оживить это. Я не могу использовать ResizeEvent, так как это Calles после виджет был изменен. Каково правильное место для запуска этой анимации, следовательно, какие члены называются внутренне?

0

Решение

Что ж, вы должны оставить QListView и сосредоточиться на его модели. Допустим, у вас есть что-то вроде:

QListView *myListView;

В таком случае стоит обратить внимание на его модель, а это значит:

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

Вы можете подключить некоторый слот (в зависимости от того, когда вы хотите запустить анимацию, до или после того, как данные извлекаются представлениями), может быть что-то вроде:

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

или же:

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

Внутри слота MyHandlingObjectClass :: myHandlingSlot () вы в конечном итоге запустите QPropertyAnimation. Я думаю, что это не намного больше, чем это. Надеюсь, поможет!

1

Другие решения


По вопросам рекламы [email protected]