QT 基于QMainWindow的堆栈窗体设计

代码与基于QDialog的堆栈窗口一样,但是在编译的时候会出现错误,如下:

QLayout: Attempting to add QLayout "" to stacked "", which already has a layout



查询之后发现QMainWindow有自己的布局,因此不能直接设置layout,需要先设置一个中心控件,对该中心控件编辑layout

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);
 }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章