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

作者:

文章目录
  • 根据窗口坐标布局,类似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())
  • 垂直:Vertical   Horizontal: 水平  Y 与 V 有点类似,V就是Y 垂直布局. 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())
  • 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())
  • 类似Tk的grid()布局方式 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) # 布局 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())
  • 布局管理器除了可以添加控件,还可以添加子布局 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(entry2) 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 布局管理器内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客!  您可能感兴趣的文章: PyQt5每天必学之布局管理 浅谈pyqt5在QMainWindow中布局的问题 PyQt Qt Designer工具的布局管理详解 Pyqt5自适应布局实例 python GUI库图形界面开发之PyQt5窗口布局控件QStackedWidget详细使用方法 python GUI库图形界面开发之PyQt5表单布局控件QFormLayout详细使用方法与实例 python GUI库图形界面开发之PyQt5动态(可拖动控件大小)布局控件QSplitter详细使用方法与实例 Python深度学习实战PyQt5窗口切换的堆叠布局示例详解 Python深度学习实战PyQt5布局管理项目示例详解
  • 目录
    • move()方法
    • 垂直布局管理器QVBoxLayout()
    • 水平布局管理器QHBoxLayout()
    • 表单布局管理器QFormLayout()
      • 常用方法
    • 网格布局管理器QGridLayout()
      • 布局嵌套

        PyQt布局管理器有六种:

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

        根据窗口坐标布局,类似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())

        垂直:Vertical   Horizontal: 水平 

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

        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())

        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())

        • 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())

        类似Tk的grid()布局方式

        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)
        
                # 布局
                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())
        

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

        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(entry2)
        
                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 布局管理器内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客! 

        您可能感兴趣的文章:

        • PyQt5每天必学之布局管理
        • 浅谈pyqt5在QMainWindow中布局的问题
        • PyQt Qt Designer工具的布局管理详解
        • Pyqt5自适应布局实例
        • python GUI库图形界面开发之PyQt5窗口布局控件QStackedWidget详细使用方法
        • python GUI库图形界面开发之PyQt5表单布局控件QFormLayout详细使用方法与实例
        • python GUI库图形界面开发之PyQt5动态(可拖动控件大小)布局控件QSplitter详细使用方法与实例
        • Python深度学习实战PyQt5窗口切换的堆叠布局示例详解
        • Python深度学习实战PyQt5布局管理项目示例详解

        站内搜索