Скрыть вкладку, ранее добавленную в Qt TabWidget - PullRequest
6 голосов
/ 16 октября 2008

У меня есть диалог, который содержит Qt TabWidget с несколькими добавленными вкладками.

Я бы хотел скрыть одну из вкладок.

_mytab->hide() 

не работает. Я не хочу просто удалять вкладку и все ее виджеты из файла .ui, потому что другой код опирается на виджеты во вкладке. Тем не менее, было бы хорошо генерировать код табуляции, но почему-то нет: :: insertTab в сгенерированном uic_mydialog.cpp Установка скрытого свойства в файле пользовательского интерфейса также не работает.

Я использую Qt 3.3

Ответы [ 2 ]

10 голосов
/ 16 октября 2008

Я столкнулся с той же проблемой. Я использую следующий подход.

Теперь вот данные.

genTab - это имя моего QTabWidget

tabX - это имя вкладки, которую я хочу удалить.

(Обратите внимание, что это вторая вкладка в виджете вкладок. Следовательно, я буду использовать «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. Из того, что вы говорите, в вашем случае вкладка действительно добавляется статически во время разработки.

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

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

-Arjun

7 голосов
/ 16 октября 2008

Я бы использовал QTabDialog :: removePage (QWidget * pTabPage), который не удаляет pTabPage, что вам и нужно.

_myTabDlg->removePage(_mytab);

Я использую его, и он отлично работает!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...