Pergunta

Eu tenho uma caixa de diálogo que contém um TabWidget QT com várias guias adicionadas.

Eu gostaria de esconder uma das guias.

_mytab->hide() 

não funciona. Não quero apenas excluir a guia e todos os seus widgets do arquivo .ui porque outro código depende dos widgets dentro da guia. No entanto, seria bom gerar o código da guia, mas de alguma forma não :: inserttab no uic_mydialog.cpp gerado. Definir a propriedade oculta no arquivo da interface do usuário também não funciona.

Estou usando o QT 3.3

Foi útil?

Solução

Eu usaria Qtabdialog :: Remonepage (QWidget* ptabpage) que não exclui o PTABPAGE, que é o que você deseja.

_myTabDlg->removePage(_mytab);

Estou usando e funciona bem!

Outras dicas

Eu tinha encontrado o mesmo problema. Estou usando a seguinte abordagem.

Agora aqui estão os dados.

gentab é o nome do meu qtabwidget

Tabx é o nome da guia que eu quero remover.

(Observe que esta é a segunda guia no widget da guia. Portanto, usarei "1" como o índice para me referir a esta guia)

O código a ser removido e adicionar está como abaixo.

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.

Aqui, observe que é fácil fazer isso se você tiver a guia adicionada estaticamente no tempo de design. Porque teremos um nome de objeto associado à guia e, portanto, podemos nos referir a ele, ui.tabx. Pelo que você diz, no seu caso, a guia é realmente adicionada estaticamente no tempo de design.

No entanto, se você estiver adicionando as guias dinamicamente, provavelmente precisará manter as guias em uma lista e depois ter outra lista para o DeletedTabs.

Mas a primeira solução provavelmente funcionará para você. Espero que isto ajude.

-Arjun

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top