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

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