刚学QT,使用布局管理器的函数无现象是怎么回事?

照着书上的例子做的,结果却不对。

#include "dialog.h"
#include

dialog::dialog(QWidget *parent)
: QMainWindow(parent)
{
label1 = new QLabel(this);
label1->setText("label1");
lineEdit = new QLineEdit(this);
label2 = new QLabel(this);
label2->setText("label2");
button = new QPushButton(this);
button->setText("button");
QGridLayout *mainLayout = new QGridLayout(this);

mainLayout->addWidget(label1,0,0);

mainLayout->addWidget(lineEdit,0,1);

mainLayout->addWidget(label2,1,0);

mainLayout->addWidget(button,1,1);

}

图片说明

QMainWindow 有一个中央窗体!所以你的布局必须得在它上面,稍作修改即可!

QWidget *centralWidget = new QWidget();
centralWidget->setLayout(mainLayout);
setCentralWidget(centralWidget);  # 重点