I have a QTabWidget
called tabWidget. It has three tabs: \"Basic\", \"Advanced\", and \"Current Structure\". The tabs are displayed in the widget in that order
You can't, not this way.
You have to iterate through all the children in the Page and disable them.
Something like this:
QList<QWidget*> list = parentWidget->findChildren<QWidget*>() ;
foreach( QWidget* w, list ) {
w->setEnabled( false ) ;
}
You can enable/disable individual tabs in a QTabWidget using the member function setTabEnabled(int index, bool enable).
Based on your code snippet, it would look like this:
bool result = false;
if (result == false)
{
tabWidget->setTabEnabled(1, false);
}
You could disable the layout of the tab.
bool result = false;
if (result == false)
{
tabWidget->widget(1)->layout()->setDisabled(true);
}
If you use Qt Widgets Application template and Advanced tab's name is tabAdvanced
(you can check the name in Object Inspector), this should work:
ui->tabAdvanced->setEnabled(false);