Qt之布局管理--基本布局


Qt提供的布局類以及他們之間的繼承關系
QLayout-----QGirdLayout
      |
      ---QBoxLayout----QHBoxLayout
               |
               --QVBoxLayout
-----------------------------------------------------------------------------
常用到的布局類有:QHBoxlayout、QVBoxLayout、QGridLayout三種,分別是水平排列布局、垂直排列布局、表格排列布局。
常用到的方法有:addWidget()和addLayout().addWidget()用於在布局中插入控件,addLayout()用於在布局中插入子布局。
----------------------------------------------------------------------------
在布局管理還常用到 setMargin()用於設定邊距,setSpacing()用於設定控件間距。
setColumnStretch()用於設置列的占空比。
-----------------------------------------------------------------------------
比起QHBoxLayout和QVBoxLayout,QGridLayout運用起來更加靈活。
QGridLayout的常用方法
1)addWidget方法:
  //放置一個控件到一個單元格
  void addWidget(QWidget *widget,int row,int column,Qt::Alignment alignment =0 )
  //如果放置的控件超出一個單元格,則使用該方法。
  void addWidget(QWidget *widget,int fromRow,int fromColumn,int rowSpan,int columnSpan,Qt::Alignment alignment = 0)
    1》row:指放置控件的網格行號(行號從0開始);
    2》column:指放置控件的網格列號(從0開始);
    3》alignment:對齊方式。
    4》fromRow:指放置控件的起始網格行號。
    5》formColumn:指放置控件的起始網格列號。
    6》rowSpan:指放置控件占多少行。
    7》columnSpan:指放置控件占多少列。
2)addLayout
  void addLayout(QLayout *layout,int row,int column,Qt::Alignment alignment = 0)
  void addLayout(QLayout *layout,int row,int column,int rowSpan,int columnSpan,Qt::Alignment alignemnt = 0)
  參數與addWidget類似。
3)setSpacing
  void QGridLayout::setSpacing(int spacing)
  設置控件水平和垂直之間的間隔
-----------------------------------------------------------------------------
在設計軟件中各個部件的位置排列,有兩種方法:
1)設置widget的父窗體的坐標和大小
  widget->move(x,y);
  widget->resize(width,height);
  //widget->setGeometry(QRect(x,y,width,height));
  優點:不想被布局約束,對這種控件可控制
  缺點:在遇到很多個部件時,一個個算坐標會很麻煩。
-----------------------------------------------------------------------------
  layout->addStretch();//添加可伸縮控件,我感覺就是占地方的那種
  layout->setAlignment(Qt::AlignHCenter);//布局內控件水平居中
  layout->setSpacing(10);//設置控件間的間隔為10
  layout->setMargin(10);//設置頁邊距為10
  Qt設計器中spacer控件
  以上在控件位置調整時常用
-----------------------------------------------------------------------------
控制布局管理中的控件自使應方式(控件隨主窗體伸縮方式(可自行增大或縮小))
QSizePolicy sizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);
  //可自行增大或縮小
  Fixed:不能放大或縮小
  Minimum: 不能小於sizeHint尺寸,可放大(若設置了最大尺寸 )
  Maximum:不能放大,可縮小到允許的最小尺寸(若setMinimumSize(10,10)只能縮小到(10,10))
  Preferred:控件的sizeHint是它的Hint,可以放大或縮小。
  Expandint:控件可以自行增大或者縮小。
-----------------------------------------------------------------------------


免責聲明!

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



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