欢迎访问宙启技术站
智能推送

利用BoxLayout()实现响应式布局的Python实例解析

发布时间:2023-12-24 06:55:23

BoxLayout()是一种布局管理器,用于实现响应式布局。它可以将组件水平或垂直地放置在容器中,并根据窗口的大小自动调整它们的位置和大小。

以下是一个使用BoxLayout()实现响应式布局的Python实例:

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QLabel, QLineEdit

class MyWindow(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        # 创建一个垂直布局管理器
        vbox = QVBoxLayout()

        # 添加标签和文本框组件
        label1 = QLabel('Label 1')
        vbox.addWidget(label1)

        text1 = QLineEdit()
        vbox.addWidget(text1)

        label2 = QLabel('Label 2')
        vbox.addWidget(label2)

        text2 = QLineEdit()
        vbox.addWidget(text2)

        # 设置窗口的布局管理器
        self.setLayout(vbox)

        # 设置窗口的标题和大小
        self.setWindowTitle('Responsive Layout Example')
        self.setGeometry(100, 100, 300, 200)
        self.show()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = MyWindow()
    sys.exit(app.exec_())

在这个例子中,我们创建了一个名为MyWindow的自定义窗口类,继承自QWidget。在initUI()方法中,我们创建了一个垂直布局管理器vbox,并通过addWidget()方法将标签和文本框组件添加到布局中。最后,通过setLayout()方法将布局应用到窗口上。

在主程序中,我们创建了一个QApplication对象app,并实例化了MyWindow类的对象window。最后,通过调用exec_()方法来启动应用程序的事件循环。

当我们运行这个程序时,窗口会自动调整组件的位置和大小,以适应窗口的大小变化。这就实现了一个简单的响应式布局。