![81f152f6e307bb9a2a29ed68c3f3a428.png](https://img-blog.csdnimg.cn/img_convert/81f152f6e307bb9a2a29ed68c3f3a428.png)
一、简介
PyQt5布局一般可分为:
- QHBoxLayout: 横向布局
- QVBoxLayout: 纵向布局
- QGridLayout: 表格布局
- QStackedLayout: 堆砌布局
下面我们一一介绍这几种布局,为了更直观的表现布局,我们先设计一个组件并涂上颜色:
from PyQt5.QtWidgets import *from PyQt5.QtCore import *from PyQt5.QtGui import *# 仅用于访问命令行参数import sysclass Color(QWidget): def __init__(self, color, *args, **kwargs): super(Color, self).__init__(*args, **kwargs) self.setAutoFillBackground(True) palette = self.palette() palette.setColor(QPalette.Window, QColor(color)) self.setPalette(palette)# 子类QMainWindow来定制你的应用程序的主窗口class MainWindow(QMainWindow): def __init__(self, *args, **kwargs): super(MainWindow, self).__init__(*args, **kwargs) self.setWindowTitle("高效码农") widget = Color('red') self.setCentralWidget(widget)# 每个应用程序需要一个(且只有一个)QApplication实例。# 如果确定不会使用命令行参数,QApplication([])也可以。app = QApplication(sys.argv)window = MainWindow()window.show() # 重要!!!!! Windows 默认是隐藏的.# 启动.app.exec_()
二、QVBoxLayout 垂直布局
使用QVBoxLayout,可以将小部件线性地排列在另一个下面。将把新的小部件添加到列的底部。
from PyQt5.QtWidgets import *from PyQt5.QtCore import *from PyQt5.QtGui import *# 仅用于访问命令行参数import sysclass Color(QWidget): def __init__(self, color, *args, **kwargs): super(Color, self).__init__(*args, **kwargs) self.setAutoFillBackground(True) palette =