16,212
社区成员
发帖
与我相关
我的任务
分享
#include <QtGui/QApplication>
#include <QWidget>
#include <QPushButton>
#include <QHBoxLayout>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QWidget w;
w.setFixedSize(400, 250);
QPushButton btn1("btn1", &w);
QPushButton btn2("btn2", &w);
QPushButton btn3("btn3", &w);
QPushButton btn4("btn4", &w);
QPushButton btn5("btn5", &w);
btn1.setFixedSize(40, 40);
btn2.setFixedSize(40, 40);
btn3.setFixedSize(40, 40);
btn4.setFixedSize(40, 40);
btn5.setFixedSize(40, 40);
QHBoxLayout *layout = new QHBoxLayout;
layout->addWidget(&btn1);
layout->setSpacing(3);
layout->addWidget(&btn2);
layout->setSpacing(3);
layout->addWidget(&btn3);
layout->setSpacing(3);
layout->addWidget(&btn4);
layout->setSpacing(3);
layout->addWidget(&btn5);
w.setLayout(layout);
w.show();
return a.exec();
}
#include <QtGui/QApplication>
#include <QWidget>
#include <QPushButton>
#include <QBoxLayout>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QWidget w;
QPushButton btn1("btn1", &w);
QPushButton btn2("btn2", &w);
QPushButton btn3("btn3", &w);
QPushButton btn4("btn4", &w);
QPushButton btn5("btn5", &w);
btn1.setFixedSize(60, 60); //大
btn2.setFixedSize(40, 40); //小
btn3.setFixedSize(40, 40);
btn4.setFixedSize(40, 40);
btn5.setFixedSize(40, 40);
/*
首先把vLayout1 : vSpacer1 btn1看成纵一组
再把vLayout2 : vSpacer2 hLayout1(btn2btn3btn4btn5) vSpacer3看成纵一组(先把btn2btn3btn4btn5看成一横组)
最后把hLayout : vLayout1 vLayout2 hSpacer1看成横一组
*/
QHBoxLayout* hLayout = new QHBoxLayout();
QVBoxLayout* vLayout1 = new QVBoxLayout();
QHBoxLayout* hLayout1 = new QHBoxLayout();
QVBoxLayout* vLayout2 = new QVBoxLayout();
QSpacerItem* vSpacer1 = new QSpacerItem(20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding);
QSpacerItem* vSpacer2 = new QSpacerItem(20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding);
QSpacerItem* vSpacer3 = new QSpacerItem(20, 5, QSizePolicy::Minimum, QSizePolicy::Fixed);
QSpacerItem* hSpacer1 = new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
//vLayout1 : vSpacer1 btn1
vLayout1->addSpacerItem(vSpacer1);
vLayout1->addWidget(&btn1);
//hLayout1 : btn2btn3btn4btn5
hLayout1->addWidget(&btn2);
hLayout1->addWidget(&btn3);
hLayout1->addWidget(&btn4);
hLayout1->addWidget(&btn5);
//vLayout2 : vSpacer2 hLayout1(btn2btn3btn4btn5) vSpacer3
vLayout2->addSpacerItem(vSpacer2);
vLayout2->addLayout(hLayout1);
vLayout2->addSpacerItem(vSpacer3);
//hLayout : vLayout1 vLayout2 hSpacer1
hLayout->setSpacing(3);
hLayout->addLayout(vLayout1);
hLayout->addLayout(vLayout2);
hLayout->addSpacerItem(hSpacer1);
hLayout->setContentsMargins(0, 0, 0, 0);
w.setLayout(hLayout);
//w.setLayoutDirection(Qt::RightToLeft);
w.show();
return a.exec();
}
#include <QtGui/QApplication>
#include <QWidget>
#include <QPushButton>
#include <QHBoxLayout>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QWidget w;
QPushButton btn1("btn1", &w);
QPushButton btn2("btn2", &w);
QPushButton btn3("btn3", &w);
QPushButton btn4("btn4", &w);
QPushButton btn5("btn5", &w);
btn1.setFixedSize(60, 60); //大
btn2.setFixedSize(40, 40); //小
btn3.setFixedSize(40, 40);
btn4.setFixedSize(40, 40);
btn5.setFixedSize(40, 40);
//Grid
QGridLayout* gridLayout = new QGridLayout(&w);
//纵Space
QSpacerItem* verticalSpacer = new QSpacerItem(20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding);
//横Space
QSpacerItem* horizontalSpacer = new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
//水平Box
QHBoxLayout* horizontalLayout = new QHBoxLayout();
horizontalLayout->setSpacing(3); //控件间间隔
horizontalLayout->addWidget(&btn1);
horizontalLayout->addWidget(&btn2);
horizontalLayout->addWidget(&btn3);
horizontalLayout->addWidget(&btn4);
horizontalLayout->addWidget(&btn5);
//布局
gridLayout->setContentsMargins(0, -1, -1, 0);
gridLayout->addItem(verticalSpacer, 0, 0, 1, 1);
gridLayout->addItem(horizontalSpacer, 1, 1, 1, 1);
gridLayout->addItem(horizontalLayout, 1, 0, 1, 1);
w.show();
return a.exec();
}
......
QWidget w;
w.setFixedSize(400, 250);
QGridLayout* gridLayout = new QGridLayout(&w);
gridLayout->setHorizontalSpacing(3);
gridLayout->setContentsMargins(0, -1, -1, 0);
QSpacerItem* verticalSpacer = new QSpacerItem(20, 200, QSizePolicy::Minimum, QSizePolicy::Expanding);
gridLayout->addItem(verticalSpacer, 0, 0, 1, 1);
QHBoxLayout* horizontalLayout = new QHBoxLayout();
horizontalLayout->setSpacing(3); // 控件间间隔
gridLayout->addItem(horizontalLayout, 1, 0, 1, 1);
QPushButton btn1("btn1", &w);
QPushButton btn2("btn2", &w);
QPushButton btn3("btn3", &w);
QPushButton btn4("btn4", &w);
QPushButton btn5("btn5", &w);
btn1.setFixedSize(40, 40);
btn2.setFixedSize(40, 40);
btn3.setFixedSize(40, 40);
btn4.setFixedSize(40, 40);
btn5.setFixedSize(40, 40);
horizontalLayout->addWidget(&btn1);
horizontalLayout->addWidget(&btn2);
horizontalLayout->addWidget(&btn3);
horizontalLayout->addWidget(&btn4);
horizontalLayout->addWidget(&btn5);
QSpacerItem* horizontalSpacer = new QSpacerItem(100, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
gridLayout->addItem(horizontalSpacer, 1, 1, 1, 1);
w.show();
......