创建我的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;
};
Contructor:
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,但我无法将其放入我的页面。
由于
答案 0 :(得分:1)
感谢thuga帮助我。
解决方案是将布局放入cImageInterface
,然后将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);
}