PyQt5 - QBoxLayout 類



QBoxLayout 類用於垂直或水平排列小部件。其派生類為 QVBoxLayout(用於垂直排列小部件)和 QHBoxLayout(用於水平排列小部件)。下表顯示了 QBoxLayout 類的重要方法:

序號 方法及描述
1

addWidget()

將小部件新增到 BoxLayout

2

addStretch()

建立可伸縮的空盒子

3

addLayout()

新增另一個巢狀佈局

示例

這裡在垂直盒子佈局中添加了兩個按鈕。透過 addStretch() 方法在它們之間添加了一個可伸縮的空隙。因此,如果調整頂級視窗的大小,按鈕的位置會自動重新定位。

import sys
from PyQt5.QtCore import * 
from PyQt5.QtGui import * 
from PyQt5.QtWidgets import *

def window():
   app = QApplication(sys.argv)
   win = QWidget()
	
   b1 = QPushButton("Button1")
   b2 = QPushButton("Button2")
   
   vbox = QVBoxLayout()
   vbox.addWidget(b1)
   vbox.addStretch()
   vbox.addWidget(b2)
   win.setLayout(vbox)

   win.setWindowTitle("PyQt")
   win.show()
   sys.exit(app.exec_())

if __name__ == '__main__':
   window()

輸出

以上程式碼產生以下輸出:

Example

示例

此示例使用水平盒子佈局。addStretch() 方法在兩個按鈕物件之間插入一個可伸縮的空隙。因此,隨著視窗大小的調整,按鈕的大小和位置會動態變化。

import sys 
from PyQt5.QtCore import * 
from PyQt5.QtGui import * 
from PyQt5.QtWidgets import *

def window():
   app = QApplication(sys.argv)
   win = QWidget()
   
   b1 = QPushButton("Button1")
   b2 = QPushButton("Button2")

   hbox = QHBoxLayout()
   hbox.addWidget(b1)
   hbox.addStretch()
   hbox.addWidget(b2)
   win.setLayout(hbox)
   win.setWindowTitle("PyQt")
   win.show()
   sys.exit(app.exec_())
	
if __name__ == '__main__':
   window()

輸出

以上程式碼產生以下輸出:

Example

示例

此示例演示瞭如何巢狀佈局。這裡,兩個按鈕被新增到垂直盒子佈局中。然後,一個包含兩個按鈕和一個可伸縮空隙的水平盒子佈局物件被新增到其中。最後,透過 setLayout() 方法將垂直盒子佈局物件應用於頂級視窗。

import sys 
from PyQt5.QtCore import * 
from PyQt5.QtGui import * 
from PyQt5.QtWidgets import *

def window():
   app = QApplication(sys.argv)
   win = QWidget()

   b1 = QPushButton("Button1")
   b2 = QPushButton("Button2")
	
   vbox = QVBoxLayout()
   vbox.addWidget(b1)
   vbox.addStretch()
   vbox.addWidget(b2)
   hbox = QHBoxLayout()
	
   b3 = QPushButton("Button3")
   b4 = QPushButton("Button4")
   hbox.addWidget(b3)
   hbox.addStretch()
   hbox.addWidget(b4)

   vbox.addStretch()
   vbox.addLayout(hbox)
   win.setLayout(vbox)

   win.setWindowTitle("PyQt")
   win.show()
   sys.exit(app.exec_())

if __name__ == '__main__':
   window()

輸出

以上程式碼產生以下輸出:

Example
pyqt_layout_management.htm
廣告

© . All rights reserved.