У меня есть диалоговое окно, содержащее Qt TabWidget с несколькими добавленными вкладками.
Я хочу скрыть одну из вкладок.
_mytab->hide()
не работает. Я не хочу просто удалять вкладку и все ее виджеты из файла .ui, потому что другой код полагается на виджеты внутри вкладки. Однако было бы хорошо сгенерировать код вкладки, но как-то не :: insertTab в сгенерированном uic_mydialog.cpp. Установка скрытого свойства в файле пользовательского интерфейса тоже не работает.
Я использую Qt 3.3





Я бы использовал QTabDialog :: removePage (QWidget * pTabPage), который не удаляет pTabPage, чего вы хотите.
_myTabDlg->removePage(_mytab);
Пользуюсь и работает нормально!
Я столкнулся с той же проблемой. Я использую следующий подход.
Теперь вот данные.
genTab is the name of my QTabWidget
tabX is the name of the tab that i want to remove.
(Обратите внимание, что это вторая вкладка в виджете вкладок. Следовательно, я буду использовать «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. Из того, что вы говорите, в вашем случае вкладка действительно добавляется статически во время разработки.
Однако, если вы добавляете вкладки динамически, то, вероятно, вам придется сохранить вкладки в списке, а затем создать другой список для удаленных вкладок.
Но первое решение, скорее всего, вам подойдет. Надеюсь это поможет.
-Арджун