1、布局控件簡介:
水平布局,里面的控件將水平展示,布局器里面的控件大小若沒有固定,其大小將隨着布局的大小而自動拉伸。可以通過設置其左(layoutLeftMargin)、上(layoutTopMargin)、右(layoutRightMargin)、下邊距(layoutBottomMargin)來調整里面控件相對於布局的邊距,控件之間的寬度可以通過layoutSpacing屬性進行設定。在Qt Designer里,可以先拖拽控件至窗口中,然后進行點擊水平、垂直布局等實現布局,也可以先拖拽布局,再向里面添加控件。布局里不能添加控件時需要先打破布局,再添加,再布局。
垂直布局與水平布局方向不一樣,用法類似。
彈簧(Spacer)可以方便對控件進行分割、自動撐開界面、自動拉伸等,分為水平彈簧(Horizontal Spacer),垂直彈簧(Vertical Spacer)。sizeType屬性指定了其伸展策略,Fixed固定大小,Expanding自動拉伸。sizeHint指定了其初始寬高。例如在水平布局里使控件右對齊,可以在布局左側放置一個Expanding的彈簧,在右側放置控件。兩端對齊,則可以在中間放置一個自動拉伸的彈簧,彈簧的寬度將隨着布局的寬度而自動拉伸。
常用控件:
QPushButton,按鈕,可以被點擊,可以顯示圖標、文字。
QLabel,可以顯示文字、圖片、動畫(gif)。
QToolButton,可以顯示菜單的按鈕。
QRadioButton,單選按鈕,QCheckBox,復選按鈕。
單選按鈕組,將單選按鈕放在同一個水平或垂直布局里,就自動成為一組了,不一定要放到QGroupBox或QButtonGroup里。
QLineEdit,單行文本框。QTextEdit,多行文本框。
Combo Box(QComboBox),下拉選擇框。
QSpinBox,上下數字選擇框。
QWebView,顯示網頁的控件,支持html、css、js。
QListView 顯示列表項的視圖控件,配合model(模型)和delegate(委托)使用,實現mvc模式。
QListWidget,顯示列表項的控件,可以setItemWidget,使列表中的項顯示某一控件。
QScrollArea,實現滾動的控件,帶滾動條。
QTabWidget,實現tab頁效果的控件。
QStackedWidget,控件棧,一次只能顯示一個widget。
2、布局方法:
1>先布局控件到理想位置中,可以水平、垂直和網格布局,一般先水平或垂直布局再網格布局,可以多個布局框鑲嵌。
2>局部布局完成后進行全局布局,點擊空白處右鍵->布局->在窗體布局中布局(默認),然后點擊空白處右鍵->布局->水平或垂直或網格布局
3>常用布局工具:
(1) 水平布局
(2)垂直布局
(3)splitter(水平分割)
(4)splitter(垂直分割)
(5)在窗口布局中布局
(6)網格布局
(7)打破布局
(8)調整窗口大小