代码与基于QDialog的堆栈窗口一样,但是在编译的时候会出现错误,如下:
查询之后发现QMainWindow有自己的布局,因此不能直接设置layout,需要先设置一个中心控件,对该中心控件编辑layout
QLayout: Attempting to add QLayout "" to stacked "", which already has a layout
|
A QMainWindow
needs to have a central widget. Try this code:
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
classA * objA = new classA(this);
classB * objB = new classB(this);
QWidget * q = new QWidget();
setCentralWidget(q);
QVBoxLayout * mainLayout = new QVBoxLayout(this);
q->setLayout(mainLayout);
mainLayout->addWidget(objA);
mainLayout->addWidget(objB);
}