10.1 QLayout布局管理器基类
作者:互联网
一、QLayout布局管理器基类
1.基本概念
- QLayout是布局管理器基类,属于抽象类。
- 如果想使用他,就必须子类化,或者直接使用其子类来调用其中的方法和属性,本节课就利用其子类盒子布局管理器来讲解。
- 基本步骤
# 1.创建布局管理器对象
# 2.设置对象参数
# 2.1边距调节
# 2.2设置布局的方向
# 3.添加需要布局的控件到布局管理器
# 4.添加布局管理器到父控件
2.代码
点击查看代码
from PyQt5.Qt import *
import sys
class Window(QWidget) :
def __init__(self) :
super().__init__()
self.setWindowTitle("布局管理-初识QLayout - PyQt5中文网")
self.resize(600, 500)
self.func_list()
def func_list(self) :
self.func()
def func(self) :
# 初识布局管理器
# QLayout是抽象类,直接使用子类创建布局管理器
# 因为父控件直接和布局管理器产生联系,布局管理器再和子控件建立联系,所以这里子控件可以省略self
label1 = QLabel('按钮1', self)
label1.setStyleSheet('background-color:green')
label2 = QLabel('按钮2', self)
label2.setStyleSheet('background-color:red')
label3 = QLabel('按钮3', self)
label3.setStyleSheet('background-color:green')
# # 传统方式布局
# label_width = self.width()
# label_height = self.height() / 3
# label1.resize(label_width, label_height)
# label2.resize(label_width, label_height)
# label3.resize(label_width, label_height)
#
# label1.move(0, 0)
# label2.move(0, label_height)
# label3.move(0, label_height * 2)
# 1.创建布局管理器对象
# v_layout = QVBoxLayout() # QVBoxLayout 垂直布局
v_layout = QHBoxLayout() #QHBoxLayout 水平布局
# 2.设置对象参数
# 2.1边距调节
v_layout.setContentsMargins(10, 30, 50, 70) # 外边距 、左上右下
v_layout.setSpacing(30) # 内边距
# 2.2设置布局的方向
# Qt.RightToLeft
# Qt.LeftToRight
# Qt.LayoutDirectionAuto # 自动布局
self.setLayoutDirection(Qt.RightToLeft)
# 3.添加需要布局的控件到布局管理器
v_layout.addWidget(label1)
v_layout.addWidget(label2)
v_layout.addWidget(label3)
# 4.添加布局管理器到父控件
self.setLayout(v_layout) # setLayout直接继承QWidget,不是控件,只是一种定位策略
print(self.children()) # 这时候布局管理器和子控件拥有相同的父对象self,所以布局管理器不是控件,只是一种定位策略
# label2.hide()
if __name__ == '__main__' :
app = QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec_())
标签:10.1,控件,管理器,self,布局,label,QLayout,layout 来源: https://www.cnblogs.com/yuyingblogs/p/16152030.html