QTabWidget方法在QtDesigner中不可用

时间:2014-05-19 11:27:20

标签: qt pyqt4 qt-designer

QTabWidget课程中提供的方法之一是setTabEnabled - 我无法在QtDesigner中看到设置此方法(我知道我可以在代码中设置它) - 是否有一个特定的原因,为什么这种方法(可能是其他人?)在QtDesigner中无法设置?

2 个答案:

答案 0 :(得分:0)

只需更改enabled内相应小部件的QTabWidget属性即可。

<小时/> 根据文件,这假设工作。我采用了look on 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)