【发布时间】:2025-12-29 02:25:07
【问题描述】:
我在创建 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,但我无法将它放在我的页面中。
谢谢
【问题讨论】:
-
嗯,是否可以按页进行 2 布局?还是只有一个但有 x、y 等值?因为这不是我想要的:imgur.com/oZ7ASYY 编辑:我认为我很愚蠢,我已经找到了解决方案。如果没问题会更新
-
它不起作用,我已经将布局放入 .ui 文件,并将
ui->appTabLayout->addWidget(tabW_Application);放入cImageInterface构造函数,它正在编译,但我有一个core dumped错误 -
你在
ui->setupUi(this)之前做ui->appTabLayout->addWidget(tabW_Application);吗?在致电setupUi之前,您无法访问ui成员。 -
你摇滚。谢谢。我会尽快接受我自己的答案。
标签: c++ qt qwidget qtabwidget