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