Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Leviathan от Октябрь 26, 2010, 14:35



Название: измененный sizeHint
Отправлено: Leviathan от Октябрь 26, 2010, 14:35
В делегате к QListView меняю поведение виртуальной функции sizeHint, после этого необходимо перерисовать список. Но единственный способ перерисовки выглядит странно: listview->setGridSize(listview->gridSize());
Это то как мне удалось перерисовывать список с измененным sizeHint.
listview->updateGeometry() почемуто не работает. Как заменить listview->setGridSize(listview->gridSize()), на что то более внятное, похожее на простое update/repaint?


Название: Re: измененный sizeHint
Отправлено: Пантер от Октябрь 26, 2010, 14:37
void QAbstractItemView::update ( const QModelIndex & index ) [slot]
Не?
Там еще много всяких void QAbstractItemView::update (.......


Название: Re: измененный sizeHint
Отправлено: Leviathan от Октябрь 26, 2010, 14:42
void QAbstractItemView::update ( const QModelIndex & index ) [slot]
Не?
Там еще много всяких void QAbstractItemView::update (.......

нужно для всех айтемов, извне. На изменение размера другого виджета.


Название: Re: измененный sizeHint
Отправлено: GreatSnake от Октябрь 26, 2010, 14:57
А чем listview->update() не подходит?


Название: Re: измененный sizeHint
Отправлено: Leviathan от Октябрь 29, 2010, 09:30
не работает


Название: Re: измененный sizeHint
Отправлено: nitro2005 от Октябрь 29, 2010, 09:44
Может установка ResizeMode в Adjust поможет?


Название: Re: измененный sizeHint
Отправлено: GreatSnake от Октябрь 29, 2010, 12:17
Попробуйте QListView::updateGeometries()