注意:MainWindow有自己默认的布局管理器
(1)QHBoxLayout 水平布局 略
(2)QVBoxLayout 垂直布局 略
(3)QGridLayout 格栅布局 理解为格子(几行几列):
gridLayout ->addWidge();
三个参数分别是添加的部件、横向位置、纵向位置。
如图,是一个3*3的格栅布局,每个格子的位置与矩阵类似:
布局的第一行添加部件:
gridLayout ->addWidget(new QPushButton("1"),0,0);
gridLayout ->addWidget(new QPushButton("2"),0,1);
gridLayout ->addWidget(new QPushButton("3"),0,2);
布局的第二行添加部件:
gridLayout ->addWidget(new QPushButton("4"),1,0);
gridLayout ->addWidget(new QPushButton("5"),1,1);
gridLayout ->addWidget(new QPushButton("5"),1,2);
布局的第三行添加部件:
gridLayout ->addWidget(new QPushButton("7"),2,0);
gridLayout ->addWidget(new QPushButton("8"),2,1);
gridLayout ->addWidget(new QPushButton("9"),2,2);
定义:
QVBoxLayout *mainLayout = new QVBoxLayout;
QHBoxLayout *horizontalLayout = new QHBoxLayout;
QGBoxLayout *gridLayout = new QGBoxLayout;
加入控件:horizontalLayout ->addWidget(qedit);
//在水平布局里添加一个单行输入框
加入布局:mainLayout ->addLayout(horizontalLayout);
mainLayout ->addLayout(gridLayout);
//在主布局里添加其他布局样式
设置布局(关键,不然没有效果):setLayout(mainLayout);
int margin() const; // 获取边距
setMargin(int margin); // 设置整体边距
setContentsMargins(int left, int top, int right, int bottom) //设置具体边距
horizontalLayout->setContentsMargins(0, 0, 0, 0); //上下左右的边距分别为0
Qt::Alignment alignment() const; // 获取对齐方式
void setAlignment(Qt::Alignment align); // 设置对齐方式
这里的 Qt::Alignment 类型有以下取值。
1)Qt::AlignLeft::水平方向靠左。
2)Qt::AlignRight:水平方向靠右。
3)Qt::AlignHCenter:水平方向居中。
4)Qt::AlignJustify:水平方向调整间距两端对齐。
5)Qt::AlignTop:垂直方向靠上。
6)Qt::AlignButton:垂直方向靠下。
7)Qt::AlignVCenter:垂直方向居中。
8)Qt::AlignCenter:等价于 Qt::AlignHCenter | Qt::AlignVCenter。
QString text() const; // 获取显示的文本
void settext(const QString &text); // 设置显示的文本,这是一个槽
const QPixmap *