QT 之 布局常用函数

来源:互联网 发布:黄宏怎么了知乎 编辑:程序博客网 时间:2024/05/16 13:57

(1).QGridLayout  栅格格布局

QGridLayout *calcu = new QGridLayout;(先定义申请空间)

            void QGridLayout::addWidget(QWidget * widget, int row, int column, Qt::Alignment alignment = 0)

void QGridLayout::addWidget(QWidget * widget, int fromRow, int fromColumn, int rowSpan, int columnSpan, Qt:: Alignment alignment = 0)

addWidget添加控件到布局中,如:

calcu->addWidget(digitButton,3,0); 添加一个digitButton 按钮控件到布局中

(2).QVBoxLayout 垂直布局

 QVBoxLayout *memoryLayout = new QVBoxLayout;(先定义申请空间) 下面的例子可以充分说明


QWidget *window = new QWidget;
    QPushButton *button1 = new QPushButton("One");
    QPushButton *button2 = new QPushButton("Two");
    QPushButton *button3 = new QPushButton("Three");
    QPushButton *button4 = new QPushButton("Four");
    QPushButton *button5 = new QPushButton("Five");


    QVBoxLayout *layout = new QVBoxLayout;
    layout->addWidget(button1);
    layout->addWidget(button2);
    layout->addWidget(button3);
    layout->addWidget(button4);
    layout->addWidget(button5);


    window->setLayout(layout);
    window->show();


(3).QHBoxLayout 水平布局

QHBoxLayout *cLayout = new QHBoxLayout; 同上 来个例子


QWidget *window = new QWidget;
    QPushButton *button1 = new QPushButton("One");
    QPushButton *button2 = new QPushButton("Two");
    QPushButton *button3 = new QPushButton("Three");
    QPushButton *button4 = new QPushButton("Four");
    QPushButton *button5 = new QPushButton("Five");


    QHBoxLayout *layout = new QHBoxLayout;
    layout->addWidget(button1);
    layout->addWidget(button2);
    layout->addWidget(button3);
    layout->addWidget(button4);
    layout->addWidget(button5);


    window->setLayout(layout);
    window->show();


  也有    

QHBoxLayout *cLayout = new QHBoxLayout;
    cLayout->addLayout(memoryLayout);
    cLayout->addLayout(calcu);

addLayout()函数将布局再布局下

(4).setLayout() 函数 设计完布局时候要调用父类的setLayout()函数

  QVBoxLayout *layout = new QVBoxLayout;
    layout->addWidget(formWidget);
    setLayout(layout);

(5).QFormLayout

目前还没有遇到,遇到后再来写完












0 0