但我们进行页面布局的时候难免会出现水平布局和垂直布局(或者其他布局)混搭,但是在
MainWindow窗口建立这样的布局就会出现问题,因为我们只能进行一个中心布局设定,
进行一个中心布局设置如下:
QWidget *widget=new QWidget(this);
QVBoxLayout *conlayout = new QVBoxLayout(widget);//基于widget
QPushButton *btn = new QPushButton(this);
btn->setText("宝藏");
QLabel *Label = new QLabel(this);
Label->setText("恭喜进来快点他!!!");
conlayout->addWidget(btn);
conlayout->addWidget(Label);
this->setCentralWidget(widget);//部件设置中央部件
当我们需要进行多个布局同时显示的时候有点招架不过来了,
不过不知道你发现了没,上面两个小部件我们是把它放在一个QVBoxLayout 中
现实的,这是不是说明我可以把网格布局也当成小部件放入另个网格布件中,
那我们就来试一试吧
QPushButton *btn = new QPushButton(this);
btn->setText("宝藏");
QLabel *Label = new QLabel(this);
Label->setText("恭喜进来快点他!!!");
/******************网格分布******************/
QGridLayout *btnlayout = new QGridLayout(this);
btnlayout->addWidget(Label,0,0);
btnlayout->addWidget(btn,0,1);
/*********************************************/
QPushButton *button1 = new QPushButton("One",this);
QLineEdit *lineEdit1 = new QLineEdit(this);
QPushButton *button2 = new QPushButton("Two",this);
QLineEdit *lineEdit2 = new QLineEdit(this);
QPushButton *button3 = new QPushButton("Three",this);
QLineEdit *lineEdit3 = new QLineEdit(this);
/******************特殊网格******************/
QFormLayout *layout = new QFormLayout(this);
layout->addRow(button1, lineEdit1);
layout->addRow(button2, lineEdit2);
layout->addRow(button3, lineEdit3);
/*********************************************/
/******************组合设置******************/
QWidget *widget=new QWidget(this);//最后总得布局
QVBoxLayout *conlayout = new QVBoxLayout(widget);//建立垂直显示
conlayout->addLayout(btnlayout);
conlayout->addLayout(layout);
this->setCentralWidget(widget);//设置中央部件
显示出效果如下