Russian Qt Forum
Ноябрь 25, 2024, 01:38 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QTabBar::removeTab странно работает  (Прочитано 2658 раз)
once_again_abc
Гость
« : Июнь 27, 2012, 09:59 »

есть три таба с индексами 0, 1 и 2
удаляю таб 1, вместе с ним удаляется таб 2 (QTabBar::count() == 1)

это нормальное поведение? в документации ничего об этом найти не смог.
если это нормальное поведение, то как предотвратить его? изобретать свой велосипед?
Записан
mutineer
Гость
« Ответ #1 : Июнь 27, 2012, 10:32 »

Напиши, хотя бы, как таб удаляешь
Записан
once_again_abc
Гость
« Ответ #2 : Июнь 27, 2012, 10:42 »

в своем классе-наследнике от QTabBar вызвается обработчик mouseDoubleClickEvent, в котором делаю следующее:

Код:
if( tabText(currentIndex()) == "Data 1" ) {
        removeTab( currentIndex() );
        emit CloseTab( "Data 1" );
}

при этом закрывается и следующий за ним таб "Data 2", а фнкция QTabBar::count() возвращает 1, т.е. только самый первый (нулевой) таб на месте.

сигнал CloseTab вызывает слот со следующим кодом:

Код:
    if( tab_name == "Data 1" ) {
        m_pDataPlotter1->setParent( NULL );
        m_pDataPlotter1->show();
    }

где m_pDataPlotter1 наследник QWidget - т.е. попросту делаю мой виджет отдельным самостоятельным окном. впрочем, вызов этого слота не влияет на ситуацию, проверял комментированием 
Код:
emit CloseTab( "Data 1" );

Записан
once_again_abc
Гость
« Ответ #3 : Июль 02, 2012, 10:50 »

судя по молчанию, такое поведение только у меня =)
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #4 : Июль 02, 2012, 10:52 »

выдели свой таббар в отдельный компилируемый проект и скинь сюда
Записан
once_again_abc
Гость
« Ответ #5 : Июль 09, 2012, 06:03 »

поднял шум почем зря...
все работает как надо, баг был у меня. сегодня дошли руки до этой функциональности - на свежую голову сразу увидел грабли =) очень стыдно, прошу прощения за всю эту суету!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.062 секунд. Запросов: 23.