Qt基本布局(QLayout)


概述

Qt提供了QHBoxLayout類(水平排列布局),QVBoxLayout類(垂直排列布局),QGridLayout類(網格排列布局)等基本布局管理。它們之間的繼承關系如下圖

布局中常用的方法有addWidget()和addLayout()

addWidget()方法用於加入需要布局的控件

void addWidget
(
    QWidget *widget,  //需要插入的控件對象
    int fromRow,  //插入的行
    int fromColum, //插入的列
    int rowSpan, //表示占用的行數
    int columSpan,  //表示占用的列數
    Qt::Alignment alignment=0  //描述各個控件的對齊方式
) 

addLayout()方法用於加入子布局

void QGridLayout::addLayout
(
    QLayout *layout,  //表示需要插入的子布局對象 
    int row,   //插入的起始行
    int column,   //插入的起始列
    int rowSpan,  //表示占用的行數
    int columSpan.  //表示占用的列數
    Qt::Alignment alignment = Qt::Alignment()  //指定對齊方式
)

注意1

LeftLayout=new QGridLayout();  //由於LeftLayout布局管理器不是主布局管理器,所以不用指定父窗口
QGridLayout *mainLayout=new QGridLayout(this);  //mainLayout實現主布局,所有要指定父窗口

注意2
QHBoxLayout默認采取的是以自左向右的方式順序排列插入控件或子布局,也可以通過setDirection()方法設定排列的順序,如

TopRightLayout->setDirection(QBoxLayout::RightToLeft);

QVBoxLayout默認采取的是以自上而下的方式順序插入控件和子布局,也可以通過調用setDirection()方法設定排列的順序
注意3
QHBoxLayout是水平布局,可以設定水平各個控件之間的間距

TopRightLayout=new QHBoxLayout();
TopRightLayout->setSpacing(20);  //設定各個控件之間的間距為20


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM