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

1.3.4 表单布局管理器QFormLayout

表单布局管理器就是指将控件按照表单的样式进行布局,比如可以将控件以一行两列的形式进行布局。表单布局管理器通常用来设置文本型控件和输入型控件(比如QLabel和QLineEdit)的布局,通常左列控件为文本型控件,右列控件为输入型控件。使用该布局管理器可以帮助我们快速实现一个登录界面,详见示例代码1-9。

示例代码1-9

import sys
from PyQt5.QtWidgets import *
 
class Window(QWidget):
    def __init__(self):
        super(Window, self).__init__()
        username_label = QLabel('Username:')   # 注释1开始
        password_label = QLabel('Password:')
        username_line = QLineEdit()
        password_line = QLineEdit()            # 注释1结束
 
        f_layout = QFormLayout()               # 注释2开始
        f_layout.addRow(username_label, username_line)
        f_layout.addRow(password_label, password_line)
        self.setLayout(f_layout)               # 注释2结束
 
if __name__ == '__main__':
    app = QApplication([])
    window = Window()
    window.show()
    sys.exit(app.exec())

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

图1-17 表单布局

代码解释:

#1 实例化两个QLabel控件和两个QLineEdit控件,这两个QLineEdit控件分别用来输入账号和密码。

#2 实例化一个表单布局管理器,然后调用addRow()方法添加Qlabel控件和QLineEdit控件。这样username_label和username_line就处在第一行,password_label和password_line就处在第二行。左列控件为QLabel,右列控件为QLineEdit。