Pregunta

Tengo un cuadro de diálogo que contiene un Qt TabWidget con varias pestañas agregadas.

Me gustaría ocultar una de las pestañas.

_mytab->hide() 

no funciona. No quiero simplemente eliminar la pestaña y todos sus widgets del archivo .ui porque otro código se basa en los widgets dentro de la pestaña. Sin embargo, estaría bien generar el código de la pestaña pero de alguna manera no :: insertTab en el uic_mydialog.cpp generado. La configuración de la propiedad oculta en el archivo ui tampoco funciona.

Estoy usando Qt 3.3

¿Fue útil?

Solución

Usaré QTabDialog :: removePage (QWidget * pTabPage) que no elimina pTabPage, que es lo que desea.

_myTabDlg->removePage(_mytab);

Lo estoy usando y funciona bien!

Otros consejos

Me había encontrado el mismo problema. Estoy usando el siguiente enfoque.

Ahora aquí están los datos.

  

genTab es el nombre de mi QTabWidget

     

tabX es el nombre de la pestaña que quiero eliminar.

(Tenga en cuenta que esta es la segunda pestaña del widget de pestañas. Por lo tanto, usaré " 1 " como el índice para referirme a esta pestaña)

El código para eliminar y agregar es el siguiente.

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.

Aquí, tenga en cuenta que es fácil hacer esto si tiene la pestaña agregada estáticamente en el tiempo de diseño. Debido a que tendremos un nombre de objeto asociado con la pestaña y, por lo tanto, podemos referirnos usando ui.tabX Por lo que dice, en su caso, la pestaña se agrega de manera estática en el tiempo de diseño.

Sin embargo, si está agregando las pestañas dinámicamente, probablemente tendrá que mantener las pestañas en una lista y luego tener otra lista para las Tablas eliminadas.

Pero la primera solución lo más probable es que funcione para usted. Espero que esto ayude.

-Arjun

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top