如何禁用QTabWidget中的一个选项卡?

Joe*_*ers 8 qt qt4 qtabbar qt5 qtabwidget

我有一个QTabWidget名为tabWidget.它有三个选项卡:"基本","高级"和"当前结构".选项卡按顺序显示在窗口小部件中.

我想在布尔result值为false 时禁用"高级"选项卡.我以为它会像这段代码一样简单:

bool result = false;
if (result == false)
{
  tabWidget->widget(1)->setDisabled(true);
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,此代码不会禁用该选项卡,即使我检查它也会保持启用状态:

tabWidget->tabBar()->isTabEnabled(1);  // This returns true
Run Code Online (Sandbox Code Playgroud)

为什么标签不会被禁用?还有另一种方法吗?

我使用的是Qt 5.4.0.

Dan*_*erg 23

您可以使用成员函数setTabEnabled(int index,bool enable)启用/禁用QTabWidget中的各个选项卡.

根据您的代码段,它看起来像这样:

bool result = false;
if (result == false)
{
  tabWidget->setTabEnabled(1, false);
}
Run Code Online (Sandbox Code Playgroud)

  • 或者更简洁:`tabWidget-> setTabEnabled(1,result);` (3认同)