Скрыть вкладку, ранее добавленную в Qt TabWidget
У меня есть диалог, который содержит Qt TabWidget с добавлением нескольких вкладок.
Я хотел бы скрыть одну из вкладок.
_mytab->hide()
не работает. Я не хочу просто удалять вкладку и все ее виджеты из.ui-файл, потому что другой код зависит от виджетов на вкладке. Однако было бы неплохо сгенерировать код вкладки, но как-то не ::insertTab в сгенерированном uic_mydialog.СРР. Установка скрытое свойство в файле UI не работает любой.
Я использую Qt 3.3
2 ответов
Я бы использовал QTabDialog:: removePage(QWidget* pTabPage), который не удаляет pTabPage, что вы хотите.
_myTabDlg->removePage(_mytab);
Я использую его, и он отлично работает !
я столкнулся с той же проблемой. Я использую следующий подход.
теперь вот данные.
genTab-это имя моего QTabWidget
tabX-это имя вкладки, которую я хочу удалить.
(обратите внимание, что это вторая вкладка в виджете Tab. Следовательно, я буду использовать "1" в качестве индекса для ссылки на эту вкладку)
код для удаления и добавления, как показано ниже.
ui.genTab->removeTab(1); // removes the tab at the index 1 which is the second tab from left
ui.genTab->insertTab(1, ui.tabX, "<Name of TabX>"); // The tab is added back.
здесь, обратите внимание, что это легко сделать, если вкладка добавлена статически во время разработки. Потому что у нас будет имя объекта, связанное с вкладкой, и поэтому мы можем ссылаться на него с помощью ui.tabX. Из того, что вы говорите, в вашем случае вкладка действительно добавляется статически во время разработки.
однако, если вы добавляете вкладки динамически, то, вероятно, вам придется поддерживать вкладки в списке, а затем иметь другой список для deletedTabs.
но первый вариант скорее всего работать для вас. Надеюсь, это поможет.
-Арджун