今天再看《C++ GUI Qt4编程》,看到第一章,介绍了布局,于是照着上面的查找对话框敲了一遍,当作练习布局的使用。
代码如下:
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
label = new QLabel("find what");
lineEdit = new QLineEdit;
QHBoxLayout *topleftLayout = new QHBoxLayout;
topleftLayout->addWidget(label);
topleftLayout->addWidget(lineEdit);
caseCheckBox = new QCheckBox("Match case");
backwardCheckBox = new QCheckBox("Search backward");
QVBoxLayout *leftLayout = new QVBoxLayout;
leftLayout->addLayout((topleftLayout));
leftLayout->addWidget(caseCheckBox);
leftLayout->addWidget(backwardCheckBox);
findButton = new QPushButton("Find");
closeButton = new QPushButton("close");
QVBoxLayout *rightLayout = new QVBoxLayout;
rightLayout->addWidget(findButton);
rightLayout->addStretch();
rightLayout->addWidget(closeButton);
QHBoxLayout *mainLayout = new QHBoxLayout;
mainLayout->addLayout(leftLayout);
mainLayout->addLayout(rightLayout);
this->setLayout(mainLayout);
}
运行图:
分了三部分:左上,左下,右。
左上:一个label和一个lineEdit将它们水平布局.
左下:两个checkBox,将它们垂直布局.
在用一个垂直布局将左上左下布局为左.
右边为一个垂直布局,有两个按钮.
再将左右通过一个水平布局,布局成mainLayout.
最后设置widget的布局为mainLayout即可。