Russian Qt Forum

Qt => Model-View (MV) => Тема начата: CroCIV от Октябрь 16, 2009, 13:17



Название: Не могу понять, зачем QAbstractItemView::selectedIndexes() обьявлен protected
Отправлено: CroCIV от Октябрь 16, 2009, 13:17
не удобно пользоваться, надо создавать свой класс наследник и писать паблик функцию возвращающую значение этой функции, вопрос, а зачем она протектед?  ???  :-\


Название: Re: Не могу понять, зачем QAbstractItemView::selectedIndexes() обьявлен protected
Отправлено: BRE от Октябрь 16, 2009, 13:30
не удобно пользоваться, надо создавать свой класс наследник и писать паблик функцию возвращающую значение этой функции, вопрос, а зачем она протектед?  ???  :-\
Потому что нужно использовать QItemSelectionModel.
QModelIndexList QItemSelectionModel::selectedIndexes () const


Название: Re: Не могу понять, зачем QAbstractItemView::selectedIndexes() обьявлен protected
Отправлено: CroCIV от Октябрь 16, 2009, 13:55
мне он не удобен оказался в одном случае, разница между ними есть, один возвращает индексы всех выделенных итемов, второй только видимые, мне спонадобилось только видимые, а он протектед благо у меня серавно таблвьюха уже отнаследованная т что я с удовольствием ей воспользовался, но подумал а зачем они ее закрыли (ведь не просто так), и просто стало любопытно  ::)


Название: Re: Не могу понять, зачем QAbstractItemView::selectedIndexes() обьявлен protecte
Отправлено: Авварон от Октябрь 16, 2009, 14:14
что значит "только видимые"? То есть есть прокся, скрывающая элементы? По идее selecton модель прокси будет давать видимые...


Название: Re: Не могу понять, зачем QAbstractItemView::selectedIndexes() обьявлен protected
Отправлено: CroCIV от Октябрь 19, 2009, 09:28
Нет, без проксей. У QTableView есть void setRowHidden ( int row, bool hide ) и bool isRowHidden ( int row ) const, если последняя функция возвращает правду, то индекс элемента этой записи, даже если он выделен (те присутствует в списке класса QItemSelectionModel), в, возвращаемый функцией QAbstractItemView::selectedIndexes(), список не попадает.