开发者

PyQt6 布局管理器的六种实现示例

开发者 https://www.devze.com 2025-05-15 09:36 出处:网络 作者: 爬无止境
目录move()方法垂直布局管理器QvboxLayout()水平布局管理器QHBoxLayout()表单布局管理器QFormLayout()常用方法网格布局管理器QGridLayout()布局嵌套PyQt布局管理编程客栈器有六种:
目录
  • move()方法
  • 垂直布局管理器QvboxLayout()
  • 水平布局管理器QHBoxLayout()
  • 表单布局管理器QFormLayout()
    • 常用方法
  • 网格布局管理器QGridLayout()
    • 布局嵌套

      PyQt布局管理编程客栈器有六种:

      • move()方法布局
      • 垂直布局管理器QVBoxLayout()
      • 水平布局管理器QHBoxLayout()
      • 表单布局管理器QFormLayout()
      • 网格布局管理器QGridLayout()
      • 布局嵌套

      move()方法

      根据窗口坐标布局,类似Tk的place。

      import sys
      
      from PyQt6.QtWidgets import *
      
      
      class Window(QWidget):
          def __init__(self):
              super().__init__()
              self.resize(200,200)
      
              label1 = QLabel('username:',self)
              entry1 = QLineEdit(self)
              # label2 = QLabel('password', self)
              # entry2 = QLineEdit(self)
      
              # 布局
              label1.move(40,40)
              entry1.move(80,40)
      
      
      if __name__ == '__main__':
          app = QApplication(sys.argv)
          w = Window()
          w.show()
      
          sys.exit(app.exec())

      垂直布局管理器QVBoxL编程客栈ayout()

      垂直:Vertical   Horizontal: 水平 

      Y 与 V 有点类似,V就是Y 垂直布局.

      PyQt6 布局管理器的六种实现示例

      import sys
      
      from PyQt6.QtWidgets import *
      
      
      class Window(QWidget):
          def __init__(self):
              super().__init__()
              label1 = QLabel("username:", self)
              entry1 = QLineEdit(self)
              label2 = QLabel("password:", self)
              entry2 = QLineEdit(self)
      
              # 布局
              v_layout = QVBoxLayout()
              v_layout.addwidget(label1)
              v_layout.addWidget(entry1)
              v_layout.addWidget(label2)
              v_layout.addWidget(entry2)
              
              self.setLayout(v_layout)
      
      
      if __name__ == '__main__':
          app = QApplication(sys.argv)
          w = Window()
          w.show()
      
          sys.exit(app.exec())

      PyQt6 布局管理器的六种实现示例

      水平布局管理器QHBoxLayout()

      PyQt6 布局管理器的六种实现示例

      import sys
      
      from PyQt6.QtWidgets import *
      
      
      class Window(QWidget):
          def __init__(self):
              super().__init__()
              label1 = QLabel("username:", self)
              entry1 = QLineEdit(self)
              label2 = QLabel("password:", self)
              entry2 = QLineEdit(self)
      
              # 布局
              h_layout = QHBoxLayout()
              h_layout.addWidget(label1)
              h_layout.addWidget(entry1)
              h_layout.addWidget(label2)
              h_layout.addWidget(entry2)
      
              self.setLayout(h_layout)
      
      
      if __name__ == '__main__':
          app = QApplication(sys.argv)
          w = Window()
          w.show()
      
          sys.exit(app.exec())

      PyQt6 布局管理器的六种实现示例

      表单布局管理器QFormLayout()

      常用方法

      • addRow(label, widget): 添加一行,包含标签和控件。例如用户名输入框或密码输入框。

      • setFormAlignment(): 设置整个表单的对齐方式。

      • setLabelAlignment(): 设置标签的对齐方式。

      • addWidget(widget): 添加一个占用整行的控件,比如按钮或描述文字。

      import sys
      
      from PyQt6.QtWidgets import *
      
      
      class Window(QWidget):
          def __init__(self):
              super().__init__()
              label1 = QLabel("username:", self)
              entry1 = QLineEdit(self)
              label2 = QLabel("password:", self)
              entry2 = QLineEdit(self)
      
              # 布局
              f_layout = QFormLayout()
              f_layout.addRow(label1import sys
      from PyQt6.QtWidgets import QApplication, QWidget, QLabel, QLineEdit, QPushButton, QFormLayout
      from PyQt6.QtCore import Qt
      
      
      class FormExample(QWidget):
          def __init__(self):
              super().__init__()
      
              # 设置窗口标题和大小
              self.setWindowTitle("Form Alignment Example")
              self.resize(400, 200)
      
              # 创建表单布局
              form_layout = QFormLayout()
      
              # 添加标签和输入框
              form_layout.addRow("Username:", QLineEdit())
              form_layout.addRow("Password:", QLineEdit())
      
              # 添加按钮
              login_button = QPushButton("Login")
              form_layout.addWidget(login_button)
      
              # 设置表单整体对齐方式
              form_layout.setFormAlignment(Qt.AlignmentFlag.AlignCenter)  # 整体居中
              # 设置标签对齐方式
              form_layout.setLabelAlignment(Qt.AlignmentFlag.AlignRight)  # 标签右对齐
      
              # 应用布局
              self.setLayout(form_layout)
      
      
      if __name__ == "__main__":
          app = QApplication(sys.argv)
          w = FormExample()
          w.show()
          sys.exit(app.exec())
      , entry1)
              f_layout.addRow(label2, entry2)
      
      
              self.setLayout(f_layout)
      
      
      if __name__ == '__main__':
          app = QApplication(sys.argv)
          w = Window()
          w.show()
      
          sys.exit(app.exec())

      PyQt6 布局管理器的六种实现示例

      网格布局管理器QGridLayout()

      类似Tk的grid()布局方式

      import sys
      
      from PyQt6.Qt编程客栈Widgets import *
      
      
      class Window(QWidget):
          def __init__(self):
              super().__init__()
              label1 = QLabel("username:", self)
              entry1 = QLineEdit(self)
              label2 = QLabel("password:", self)
              entry2 = QLineEdit(self)
      
              # 布局
              grid_layout = QGridLayout()
              grid_layout.addWidget(label1,0,0)
        编程客栈      grid_layout.addWidget(entry1,0,1)
              grid_layout.addWidget(label2,1,0)
              grid_layout.addWidget(entry2,1,1)
      
              # 应用布局
              self.setLayout(grid_layout)
      
      
      if __name__ == '__main__':
          app = QApplication(sys.argv)
          w = Window()
          w.show()
      
          sys.exit(app.exec())
      

      PyQt6 布局管理器的六种实现示例

      布局嵌套

      布局管理器除了可以添加控件,还可以添加子布局

      import sys
      
      from PyQt6.QtWidgets import *
      
      
      class Window(QWidget):
          def __init__(self):
              super().__init__()
              label1 = QLabel("username:", self)
              entry1 = QLineEdit(self)
              label2 = QLabel("password:", self)
              entry2 = QLineEdit(self)
      
              # 布局
              v_layout = QVBoxLayout()
              h1_layout = QHBoxLayout()
              h1_layout.addWidget(label1)
              h1_layout.addWidget(entry1)
      
              h2_layout = QHBoxLayout()
              h2_layout.addWidget(label2)
              h2_layout.addWidget(KopqCuentry2)
      
              v_layout.addLayout(h1_layout)
              v_layout.addLayout(h2_layout)
      
      
              # 应用布局
              self.setLayout(v_layout)
      
      
      if __name__ == '__main__':
          app = QApplication(sys.argv)
          w = Window()
          w.show()
      
          sys.exit(app.exec())
      

      PyQt6 布局管理器的六种实现示例

      到此这篇关于PyQt6 布局管理器的实现示例的文章就介绍到这了,更多相关PyQt6 布局管理器内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)! 

      0

      精彩评论

      暂无评论...
      验证码 换一张
      取 消

      关注公众号