当前位置 主页 > 网站技术 > 代码类 >

    Pyqt5自适应布局实例

    栏目:代码类 时间:2019-12-14 06:05

    在pyqt5中要做到自适应布局,必须应用Layout类

    下面列出类似于 html 中 float 功能的布局方法:

    实现原理: PyQt5中的布局中,stretch 属性类似于一个可自适应的空白布局。会尽可能将周围的组件布局向外挤压

    from PyQt5.QtWidgets import QVBoxLayout, QHBoxLayout
    
    
    # 垂直居中
    def vcenter_layout(*widgets):
      vbox = QVBoxLayout()
      vbox.addStretch()
      for widget in widgets:
        vbox.addWidget(widget)
      vbox.addStretch()
      return vbox
    
    
    # 水平居中
    def hcenter_layout(*widgets):
      hbox = QHBoxLayout()
      hbox.addStretch()
      for widget in widgets:
        hbox.addWidget(widget)
      hbox.addStretch()
      return hbox
    
    
    # 垂直水平居中
    def center_layout(widget):
      hbox = QHBoxLayout()
      hbox.addStretch()
      hbox.addWidget(widget)
      hbox.addStretch()
    
      vbox = QVBoxLayout()
      vbox.addStretch()
      vbox.addLayout(hbox)
      vbox.addStretch()
      return vbox
    
    
    # 居左
    def left_layout(*widgets):
      hbox = QHBoxLayout()
      for widget in widgets:
        hbox.addWidget(widget)
      hbox.addStretch()
      return hbox
    
    
    # 居右
    def right_layout(*widgets):
      hbox = QHBoxLayout()
      hbox.addStretch()
      for widget in widgets:
        hbox.addWidget(widget)
      return hbox
    
    
    # 向上靠齐
    def top_layout(*widgets):
      vbox = QVBoxLayout()
      for widget in widgets:
        vbox.addWidget(widget)
      vbox.addStretch()
      return vbox
    
    
    # 向下靠齐
    def bottom_layout(*widgets):
      vbox = QVBoxLayout()
      vbox.addStretch()
      for widget in widgets:
        vbox.addWidget(widget)
      return vbox
    
    
    # 正常垂直分布
    def v_layout(*widgets):
      vbox = QVBoxLayout()
      for widget in widgets:
        vbox.addWidget(widget)
      return vbox
    
    
    # 正常垂直分布
    def h_layout(*widgets):
      vbox = QHBoxLayout()
      for widget in widgets:
        vbox.addWidget(widget)
      return vbox
    

    基本上,大的布局通过上面的方法即可实现,细节可能还需要调整 margin 或者 spacing

    以上这篇Pyqt5自适应布局实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持IIS7站长之家。