Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: BuRn от Декабрь 18, 2011, 19:41



Название: что посоветуете с табами...
Отправлено: BuRn от Декабрь 18, 2011, 19:41
Вообщем создаю динамически табы, в конструктор передаю номер(индекс) страницы...
Но вот в чем косяк, после некоторых действий мне нужно удалить страницу,а вот индексы могут сбиваться , пример:
создал таб номер 1
создал таб номер 2
удалил таб 1
таб с номером 2 так и остался с номером 2, а по факту он номер 1, следовательно если я попробую сделать удаление по номеру таба то будет фейл
как пересчитывать номер таб виджет
т.е. можно конечно брать текущий, но тут тоже некоторые сложности возникают, при кликах на табы, мне нужно знать номер и остальных страниц...


Название: Re: что посоветуете с табами...
Отправлено: BuRn от Декабрь 18, 2011, 20:11
придумал, повесить обработчик на чангет таб, и после присваивать индекс


Название: Re: что посоветуете с табами...
Отправлено: kambala от Декабрь 18, 2011, 20:22
если ты хранишь указатели на страницы табов, то номер страницы всегда можно получить через int QTabWidget::indexOf ( QWidget * w ) const
чангет таб
facepalm.jpg


Название: Re: что посоветуете с табами...
Отправлено: KrupaKarlo от Декабрь 23, 2011, 15:21
Тут есть еще такой вариант. Если ты будешь рубить табы по сигналам от них. То ты можешь в слоте обработки через  sender() получить указатель на tab создавший сигнал и удалить его.  ::)


Название: Re: что посоветуете с табами...
Отправлено: fuCtor от Декабрь 26, 2011, 06:29
Если к табам привязан некоторый объект, то не проще ли указатель на него поместить в сам таб => не нужно будет привязываться к индексам. Для этого даже метод есть:
setTabData ( int index, const QVariant & data )
QVariant   tabData ( int index ) const
Даже если там сменит индекс, данные останутся там где надо.


Название: Re: что посоветуете с табами...
Отправлено: andrew.k от Декабрь 26, 2011, 10:18
Если к табам привязан некоторый объект, то не проще ли указатель на него поместить в сам таб => не нужно будет привязываться к индексам. Для этого даже метод есть:
setTabData ( int index, const QVariant & data )
QVariant   tabData ( int index ) const
Даже если там сменит индекс, данные останутся там где надо.
Зачем такой изврат? Решение в ответе #2