QLayout是所有布局类的基类,所有布局类适用与以下函数
void QWidget::setLayout(QLabel* L); //设置控件中的布局
void QLayout::addWidget(Qwidget* W); //将控件添加进布局对象
QHBoxLayout
放入该布局的控件会水平排列
QVBoxLayout
放入该布局的控件会垂直排列
2 #include <QPushButton>
3 #include <QLabel>
4 #include <QLineEdit>
5 #include <QHBoxLayout>
6 #include <QWidget>
7
8 int main(int argc, char **argv)
9 {
10 QApplication app(argc, argv);
11
12 QWidget window; //空白窗口空间,本质也是控件,大控件里放有小控件
13 QHBoxLayout *layout = new QHBoxLayout(&window);//新建布局
14 QPushButton *btn = new QPushButton("button", &window); //&window 构建对象树window关闭时b tn指向的内存释放
15 QLineEdit *le = new QLineEdit(&window);
16 QLabel *lb = new QLabel("Label", &window);
17
18 layout->addWidget(btn); //向布局中添加控件
19 layout->addWidget(le);
20 layout->addWidget(lb);
21
22 window.setLayout(layout);//设置窗口布局
23 window.show();
24
25 return app.exec();
26 }
自定义窗口类:
为便于代码管理,编程清晰,于是将整个窗口控件设计成窗口类,这个类的构造函数完成窗口的布局
这个类的父类有以下几种情况:
QWidget 普通窗口(有做大化选项)
QDialog 对话窗口(无最大化选项)
QMainWindow 有工具栏的窗口