073.PyQt5_布局管理

  

我 的 个 人 主 页: 失心疯的个人主页
入 门 教 程 推 荐 : Python零基础入门教程合集
虚 拟 环 境 搭 建 : Python项目虚拟环境(超详细讲解)
PyQt5 系 列 教 程: Python GUI(PyQt5)文章合集
Oracle数据库教程: Oracle数据库文章合集
优 质 资 源 下 载 : 资源下载合集

布局管理

  • 布局概念
    • 布局就是指按照某种规则将子控件摆放在父控件中
  • 布局的方式
    • 手动布局
      • 绝对布局:直接给定具体的坐标信息和尺寸信息。设置之后,后续如果不重新设置,则一直不变
      • 操作方法:resize(width, height)、move(x, y)
      • 重写resizeEvent(evt),在内部根据父控件的尺寸大小的调整,重新计算子控件
    • 布局管理器
      • 包含了一些特
      • 定的规则:横着水平排放、竖着垂直排放、网格排放、表单排放....
      • 使用这些布局管理器进行布局,可以快速的实现指定布局的效果,不需要手动计算位置和尺寸
  • 布局管理器概念
    • Qt包含一个布局管理类的集合,他们被用来描述控件如何在应用程序的用户界面呈现
    • 当可用空间发生变化时,这些布局将自动调整控件的位置和大小
    • 布局管理器不是界面控件(并不是继承自QWidget),而是界面控件的“定位策略”
    • 所有QWidget类别及其子类都可以用布局俩管理它们的子控件
      • 布置子控件
      • 最高层窗口可感知的默认大小
      • 最高层窗口可感知的最小大小
      • 调整大小的处理
      • 当内容改变的时候自动更新
        • 字体大小、文本或者子控件的其他内容
        • 隐藏或者显示子控件
        • 移除一些子控件
    • 布局管理器继承图
      • 073.PyQt5_布局管理_第1张图片

      • QBoxLayout:盒子布局
        • QHBoxLayout:水平盒子布局
        • QVBoxLayout:垂直盒子布局
      • QGridLayout:表格布局
      • QStackedLayout:栅格布局
      • QFormLayout:表单布局
  • 布局的简单使用演示
    1. 创建布局对象

      # 不需要设置父对象
      layout = QLayout()
      ```。‘;
      
      
    2. 设置布局对象参数

      # margin 外边距
      setContentsMargins(self, int, int, int, int)                # 设置布局管理器外边距
      
      # spacing 内间距(子控件与子控件之间的距离)
      setSpacing(self, int)                                       # 设置布局管理器内间距
      
      # alignment 对齐方式
      setAlignment(self, QWidget, Union[Qt.Alignment, Qt.AlignmentFlag])->bool
      setAlignment(self, QLayout, Union[Qt.Alignment, Qt.AlignmentFlag])->bool
      setAlignment(self, Union[Qt.Alignment, Qt.AlignmentFlag])
      
    3. 设置给需要布局子控件的父控件(调整方向)

      QWidget.setLayout(QLayout)                                      # 设置父控件布局管理器
      
      QWidget.setLayoutDirection(Qt.RightToleft)                      # 设置父控件布局管理器的方向(子控件排列顺序)
      # 参数:Qt.RightToleft
      #       Qt.LeftToRight              # 从左到右布局
      #       Qt.RightToLeft              # 从右到左布局
      #       Qt.LayoutDirectionAuto      # 自动布局
      
      QWidget.unsetLayoutDirection()                                  # 
      
    4. 将布局控件内部的子控件添加到布局管理其中,自动进行布局

      • 注意:创建子控件时,不需要设置父控件
      QLayout.addWidget(QWidget)              # 将子控件添加到布局管理器中
      
    • 注意:第三步和第四步可以互换先后
  • 布局管理器的详细使用
    • QLayout:布局基类
    • QBoxLayout:盒子布局
      • QHBoxLayout:水平盒子布局
      • QVBoxLayout:垂直盒子布局
    • QGridLayout:表格布局
    • QStackedLayout:栅格布局
    • QFormLayout:表单布局
  • 补充

你可能感兴趣的:(PyQt5,pyqt5,python,gui,python,pyqt,qt)