У меня есть некоторые трудности, чтобы создать свой пользовательский интерфейс.
Что мне нужно :
1 QTabWidget с 3 QWidget в качестве вкладок. Один из этих виджетов содержит 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 в конструкторе. Я могу видеть мой QTabWidget с show()
но я не могу поместить это в мою страницу.
Спасибо
Спасибо Туге за помощь.
Решением было поместить макет в 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);
}
Других решений пока нет …