gpt4 book ai didi

c++ - QTabWidget 没有出现

转载 作者:行者123 更新时间:2023-11-28 07:02:31 27 4
gpt4 key购买 nike

我在创建 UI 时遇到了一些困难。

我需要什么:

1 个 QTabWidget 和 3 个 QWidget 作为标签。其中一个 Widget 包含 QPushButtons、QLineEdits,并且必须包含另一个 QTabWidget。

我的问题:

在我的其他 QTabWidget 上取得成功的地方,这个没有出现。我手动将 QPushButton 和 QLineEdit 放入 .ui 文件中。现在我想在同一页面上动态创建一个 QTabWidget。

我的页面代码:

namespace Ui
{
class cImageInterface;
}

class cImageInterface : public QWidget
{
Q_OBJECT

public:
cImageInterface();
~cImageInterface();

private:
Ui::cImageInterface* ui;

cAppTabWidget* tabW_Application;
};

构造函数:

cImageInterface::cImageInterface() : ui(new Ui::cImageInterface)
{
tabW_Application = new cAppTabWidget(this);

ui->setupUi(this);
}

QTabWidget 代码:

class cAppTabWidget : public QTabWidget
{
Q_OBJECT

public:
explicit cAppTabWidget(QWidget* parent);
~cAppTabWidget();

protected:

private:
Ui::cAppTabWidget* ui;
cAppInterface* tab_Application;
int m_NbTab;
};

构造函数:

cAppTabWidget::cAppTabWidget(QWidget* parent)
: ui(new Ui::cAppTabWidget)
, tab_Application(new cAppInterface)
, m_NbTab(1)
{
this->setGeometry(0, 230, 800, 360);
this->addTab(tab_Application, "App5896");
}

cAppInterface只是一个QWidget派生类,构造函数中只有一个setupUi。我可以使用 show() 查看我的 QTabWidget,但无法将其放入我的页面。

谢谢

最佳答案

感谢 thuga 对我的帮助。

解决方案是在 cImageInterface 中放入一个 Layout,然后将 QTabWidget 放入其中。

我试图在我的代码中创建它时遇到了问题,所以我将它放在 .ui 文件中。

<layout class="QVBoxLayout" name="appTabLayout">
<property name="sizeConstraint">
<enum>QLayout::SetNoConstraint</enum>
</property>

然后你可以:

cImageInterface::cImageInterface() : ui(new Ui::cImageInterface)
{
tabW_Application = new cAppTabWidget(this);

ui->setupUi(this);

ui->appTabLayout->addWidget(tabW_Application);
}

关于c++ - QTabWidget 没有出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22226429/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com