将自定义小部件连接到QWidgetTab以进行大小调整

时间:2010-03-03 05:58:50

标签: qt

我正试图通过改变窗口大小来扩展每个小部件。我有一个主窗口,其中有一个QTabWidget,每个选项卡都有一个QWidget支架。然后我有一个自定义小部件,其中包含一个单独的.ui文件,我设置该文件来填充选项卡的QWidget空间。问题是,我无法获取QWidget的内容扩展,只有主窗口的tab和QWidget。此外,我注意到如果我将自定义窗口小部件的ui-> setupUi()参数从“this”更改为“parent”,则问题得到修复,并且自定义窗口小部件将正确缩放。唯一的问题是,当我这样做时,按钮都不起作用。应用程序输出读出按钮的“No Slot”发现错误。建立此连接的正确方法是什么?

编辑:示例代码

MainWindow:: ...
{
    //assign customWidget to widget placeholder on tabWidget.
    //holder is just a blank widget set in gridLayout on tab widget.
    CustomWidget * customWidget = new CustomWidget(ui->customWidgetHolder);

    setCentralWidget(ui->tabWidget); 
    //This gets the sizing I want with the tabs, but 
    //doesn't  pass it past the customWidgetHolder.
}

1 个答案:

答案 0 :(得分:2)

根据我的承诺,您需要在选项卡中使用自定义窗口小部件的布局

    QTabWidget* tabWidget = new QTabWidget();
    QWidget* tab = new QWidget();
    QVBoxLayout* verticalLayout = new QVBoxLayout(tab);

    YourWidget* widget = new YourWidget(tab);
    verticalLayout->addWidget(widget);

    tabWidget->addTab(tab, QString());

但是如果你想要回答它,你需要更具体(代码示例?)关于你所做的SIGNAL / SLOT连接。