宣讲家网站官德修养与作风建设,如何创办视频网站,平面设计服务方案,文创产品设计方法PyQt5中实现垂直布局#xff0c;主要使用QVBoxLayout类。该布局管理器将子控件垂直排列#xff0c;并可以根据需要自动调整大小。使用QVBoxLayout可以方便地构建从上到下排列的界面元素。
import sys
from PyQt5.QtWidgets import QApplication, QVBoxLayout, QWidget, QPus…PyQt5中实现垂直布局主要使用QVBoxLayout类。该布局管理器将子控件垂直排列并可以根据需要自动调整大小。使用QVBoxLayout可以方便地构建从上到下排列的界面元素。
import sys
from PyQt5.QtWidgets import QApplication, QVBoxLayout, QWidget, QPushButtonclass myWindow(QWidget): # 相当于self wQWidget()def __init__(self):super().__init__()self.resize(400, 200)self.setWindowTitle(垂直布局)# 创建一个垂直布局layout QVBoxLayout()# 第一个伸缩空间伸缩因子为1layout.addStretch(1)# 添加第一个按钮btn1 QPushButton(按钮1)layout.addWidget(btn1)# 第二个伸缩空间伸缩因子为1layout.addStretch(1)# 添加第二个按钮btn2 QPushButton(按钮2)layout.addWidget(btn2)# 第三个伸缩空间伸缩因子为1layout.addStretch(1)# 添加第三个按钮btn3 QPushButton(按钮3)layout.addWidget(btn3)# 第四个伸缩空间伸缩因子为2layout.addStretch(2)# 添加第四个按钮btn4 QPushButton(按钮4)layout.addWidget(btn4)# 第五个伸缩空间伸缩因子为2layout.addStretch(2)# 将布局设置给当前QWidget假设这段代码在QWidget的子类中self.setLayout(layout)if __name__ __main__:app QApplication(sys.argv)window myWindow()window.show()app.exec()pass伸缩因子的作用
伸缩因子stretch factor决定了当布局有多余空间时各个伸缩空间应该如何分配这些空间。在您的代码中addStretch方法的参数即伸缩因子被设置为1或2。当窗口大小改变时布局管理器会根据伸缩因子的比例来分配额外的空间。例如如果您在btn3和btn4之间的伸缩空间伸缩因子为2和在其他地方的伸缩空间伸缩因子为1之间有多余空间那么btn3和btn4之间的空间将是其他伸缩空间的两倍大。但是需要注意的是如果窗口的大小刚好足够容纳所有小部件而不留有多余空间那么伸缩空间实际上就不会有任何效果因为没有空间可以分配