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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как спрятать страницу у QTabWidget?  (Прочитано 7222 раз)
White Owl
Гость
« : Май 04, 2009, 19:13 »

Имеется стандартный QTabWidget с несколькими страницами. Как в рантайме их прятать?
Код:
tabWidget->widget(1)->hide();
ничего не происходит...
Использую Qt 4.5.1
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #1 : Май 04, 2009, 19:24 »

Никак. Используй QTabWidget::removeTab

Цитировать
Removes the tab at position index from this stack of widgets. The page widget itself is not deleted.
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
White Owl
Гость
« Ответ #2 : Май 04, 2009, 20:58 »

А потом снова addTab/insertTab? И заново определять заголовки страниц?
Как то это неправильно....
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #3 : Май 05, 2009, 06:15 »

Может лучше неактивной делать? setEnabled().
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
White Owl
Гость
« Ответ #4 : Май 05, 2009, 18:16 »

Если просто запрещать страницы, то они остаются видимыми...
Впрочем, вот ГУИ который я пытаюсь нарисовать:
У меня на диалоге слева есть дерево объектов (товары собранные в группы), а справа должно быть описание объекта выбранного в дереве. Для товара есть описание товара, список контрагентов которые с этим товаром работают, склады где товар лежит и тд и тп. А для группы может быть только описание. Какие товары в эту группу входят.
Вот и хочется чтобы страничка "Описание" была видна всегда, потому что она имеет смысл и для товара и для группы. А список контрагентов для группы не нужен и хочется его прятать...
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #5 : Май 05, 2009, 19:16 »

Вполне нормально делать просто неактивным.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
CrazyDeath
Гость
« Ответ #6 : Май 11, 2009, 02:37 »

Недавно на работе затребовали похожее зделать
может поможет.
Записан
SABROG
Гость
« Ответ #7 : Май 11, 2009, 09:42 »

Недавно на работе затребовали похожее зделать
может поможет.

Тут, по моему, достаточно было этот кусок выложить:

Код
C++ (Qt)
void Dialog::on_actionShowTub_triggered(bool status)
{
if(status)
{
ui.tabWidget->insertTab(1,insertTab,*iconSettings,"Settings");
settings->show();
}
else
{
settings->accept();
ui.tabWidget->removeTab(1);
}
}
 

Об этом методе уже говорили выше, но человек не нравится, что надо имя ярлыка заново прописывать.

Кстати название вкладки можно впихнуть в динамическое свойство QObject'a и забирать оттуда при insertTab.
« Последнее редактирование: Май 11, 2009, 09:44 от SABROG » Записан
nixman05
Гость
« Ответ #8 : Май 11, 2009, 14:35 »

Попробуй
Код:
tabWidget->widget(1)->setHidden(true);
Записан
spirit
Гость
« Ответ #9 : Май 11, 2009, 14:40 »

Попробуй
Код:
tabWidget->widget(1)->setHidden(true);
так таб-то останется.
Записан
CrazyDeath
Гость
« Ответ #10 : Май 11, 2009, 20:15 »

Цитировать
Кстати название вкладки можно впихнуть в динамическое свойство QObject'a и забирать оттуда при insertTab.
Тогда можно пойти дальше и отнаследовать класс QTabWidget и перенести все это в метод insertTab.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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