QTabWidget
课程中提供的方法之一是setTabEnabled
- 我无法在QtDesigner中看到设置此方法(我知道我可以在代码中设置它) - 是否有一个特定的原因,为什么这种方法(可能是其他人?)在QtDesigner中无法设置?
答案 0 :(得分:0)
只需更改enabled
内相应小部件的QTabWidget
属性即可。
QTabWidget
code,看起来文档错误或代码中存在错误。我不会解释为什么只提供解决方法。
创建此方法:
void tabBarWorkaround(QTabWidget *tabWidget) {
for (int i=0; i<tabWidget->count(); ++i) {
tabWidget->setTabEnabled(i, tabWidget->widget(i)->isEnabled());
}
}
并在施工时间使用它:
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
tabBarWorkaround(ui->tabWidget);
}
从此刻开始,在设计器中更改页面的enabled
属性将按您的需要工作。
我用Qt 5.2.1对它进行了测试,结果正常。
答案 1 :(得分:0)
我意识到有两个可能发生的事件:
取消选中&#39;已启用&#39; QtDesigner中的选项卡小部件的复选框实际上调用了self.<tabname>.setEnabled(False)
,这似乎禁用了选项卡中的所有子窗口小部件,但是没有禁用选项卡按钮本身(!)
禁用标签按钮,使其无法在QtDesigner中点击,但可以在代码中使用(如上一个答案所述):self._uiform.<tab frame>.setTabEnabled(<tab index>,False)