- PyQt 教程
- PyQt - 首頁
- PyQt - 簡介
- PyQt - 環境搭建
- PyQt - Hello World
- PyQt - 主要類
- PyQt - 使用 Qt Designer
- PyQt - 元物件
- PyQt 訊號與槽
- PyQt - 訊號和槽
- PyQt - 支援和訊號
- PyQt - 未繫結和已繫結訊號
- PyQt - 使用 PyQtSignal 建立新訊號
- PyQt - 連線、斷開和發射訊號
- PyQt - 槽裝飾器
- PyQt - 槽連線
- PyQt 佈局
- PyQt - 佈局管理
- PyQt - QBoxLayout
- PyQt - QGridLayout
- PyQt - QFormLayout
- PyQt - QHBoxLayout
- PyQt - QVBoxLayout
- PyQt - QStackedLayout
- PyQt - QGraphicsGridLayout
- PyQt - QGraphicsAnchorLayout
- PyQt - QGraphicsLayout
- PyQt - QGraphicsLinearLayout
- PyQt 基本控制元件
- PyQt - 基本控制元件
- PyQt - Qlabel 控制元件
- PyQt - QLineEdit 控制元件
- PyQt - QPushButton 控制元件
- PyQt - QRadioButton 控制元件
- PyQt - QCheckBox 控制元件
- PyQt - QComboBox 控制元件
- PyQt - QSpinBox 控制元件
- PyQt - QMessageBox
- PyQt - QDialogButtonBox 控制元件
- PyQt - QFontComboBox 控制元件
- PyQt - QDoubleSpinBox 控制元件
- PyQt - QToolBox 控制元件
- PyQt - QDialog 類
- PyQt - QMessageBox
- PyQt - 多文件介面
- PyQt - 拖放操作
- PyQt 繪圖 API
- PyQt - 繪圖 API
- PyQt 資料庫
- PyQt - 資料庫處理
- PyQt 基礎
- PyQt - BrushStyle 常量
- PyQt - QClipboard
- PyQt - QPixmap 類
- PyQt 有用資源
- PyQt - 快速指南
- PyQt - 有用資源
- PyQt - 討論
PyQt - QVBoxLayout
The QVBoxLayout 類用於構建垂直方向的佈局容器。容器中的內容會按照從上到下的順序依次排列。可以使用各種 PyQt 函式建立垂直容器序列,例如 setLayout()、QPushButton()、addWidget()、addStretch()、setStyleSheet() 等。因此,所有這些函式物件都建立了一個活動的佈局管理器。
QVBoxLayout 語法
構建垂直容器佈局使用以下語法:
QVBoxLayout()
QVBoxLayout 在 PyQt 視窗中的用法
- **垂直排列** - QVBoxLayout 是一種佈局管理器,負責按垂直順序排列小部件。
- **動態調整大小** - 由於主視窗大小會發生變化,因此它是動態調整大小的。
- **輕鬆新增小部件** - 我們可以使用 addWidget() 方法新增小部件。
- **間距管理** - 可以透過 addStretch() 方法維護 QVBoxLayout 的間距。當需要留出空間時,可以使用此方法。
示例 1
這裡,我們建立一個使用 addWidget() 方法的 QVBoxLayout,並將按鈕垂直顯示。
from PyQt6.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout
app = QApplication([])
window = QWidget()
layout = QVBoxLayout()
layout.addWidget(QPushButton('1'))
layout.addWidget(QPushButton('2'))
layout.addWidget(QPushButton('3'))
window.setLayout(layout)
window.show()
app.exec()
輸出
執行程式碼後,我們將獲得以下輸出:
示例 2
下面的示例演示了使用 QVBoxLayout 填充顏色後的垂直按鈕。可以使用 QColor 類填充容器,該類提供內建函式 Color() 來設定顏色的名稱。
import sys
from PyQt6.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QWidget
from PyQt6.QtGui import QColor
class Color(QWidget):
def __init__(self, color):
super().__init__()
self.setAutoFillBackground(True)
# default palette for current style
palette = self.palette()
# Modify the color
palette.setColor(self.backgroundRole(), QColor(color))
self.setPalette(palette)
class MainWindow(QMainWindow):
def __init__(self):
super(MainWindow, self).__init__()
# Setting window title
self.setWindowTitle("My App")
layout = QVBoxLayout()
layout.addWidget(Color('orange'))
layout.addWidget(Color('blue'))
layout.addWidget(Color('green'))
widget = QWidget()
widget.setLayout(layout)
self.setCentralWidget(widget)
if __name__ == "__main__":
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec())
輸出
執行程式碼後,我們將獲得三個不同顏色的容器小部件:
示例 3
我們添加了 addStretch() 方法,該方法將按鈕對齊到中心。這裡,我們從開頭到小部件(頂部)使用垂直間隔符,然後從小部件到結尾(底部)使用垂直間隔符。
import sys
from PyQt6.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout
class MainWindow(QWidget):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.setWindowTitle('PyQt QVBoxLayout')
# create a layout
layout = QVBoxLayout()
self.setLayout(layout)
# add a spacer
layout.addStretch()
# create buttons and add them to the layout
title = ['A', 'B', 'C', 'D', 'E']
buttons = [QPushButton(t) for t in title]
for button in buttons:
layout.addWidget(button)
# add a spacer
layout.addStretch()
# show the window
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()
sys.exit(app.exec())
輸出
執行程式碼後,我們將獲得以下結果:
廣告