PyQt编程快速上手
上QQ阅读APP看书,第一时间看更新

1.3.2 垂直布局管理器QVBoxLayout

所谓垂直布局(Vertical Layout),就是指将控件从上到下垂直进行摆放,我们可以用QVBoxLayout这个布局管理器来实现,如图1-13所示。

图1-13 垂直布局

现在我们在程序中垂直布局两个QLabel控件,详见示例代码1-7。

示例代码1-7

import sys
from PyQt5.QtWidgets import *
 
class Window(QWidget):
    def __init__(self):
        super(Window, self).__init__()
        username = QLabel('Username:')  #注释1开始
        password = QLabel('Password:')  #注释1结束
 
        v_layout = QVBoxLayout()        #注释2开始
        v_layout.addWidget(username)
        v_layout.addWidget(password)
        self.setLayout(v_layout)        #注释2结束
 
if __name__ == '__main__':
    app = QApplication([])
    window = Window()
    window.show()
    sys.exit(app.exec())

运行结果如图1-14所示。

图1-14 控件垂直布局

代码解释:

#1 实例化两个QLabel控件,将其文本设置为“Username:”和“Password:”。

#2 实例化一个垂直布局管理器,并通过addWidget()方法将两个控件依次添加到布局中。接着调用窗口的setLayout()方法将垂直布局方式设置为窗口的整体布局。

在垂直布局中,先添加的控件位于后添加的控件上方。

布局管理器被设置到窗口上,被添加到布局管理器中的各个控件也会自然而然地显示到窗口上,也就是我们可以不必再在实例化的时候给这些控件指定父类实例对象self。