PyQt5 - QFormLayout 类

  • 简述

    QFormLayout是一种创建两列表单的便捷方法,其中每一行包含一个与标签关联的输入字段。按照惯例,左列包含标签,右列包含输入字段。主要是三个重载addRow()addLayout() 方法是常用的。
    序号 方法和描述
    1
    addRow(QLabel, QWidget)
    添加包含标签和输入字段的行
    2
    addRow(QLabel, QLayout)
    在第二列中添加子布局
    3
    addRow(QWidget)
    添加一个跨越两列的小部件
  • 例子

    此代码添加一个 LineEdit 字段以在第一行输入名称。然后它为下一行的第二列中的两个地址字段添加垂直框布局。接下来,在第三行的第二列中添加一个包含两个单选按钮字段的水平框布局对象。第四行显示两个按钮“提交”和“取消”。
    
    import sys 
    from PyQt5.QtCore import * 
    from PyQt5.QtGui import * 
    from PyQt5.QtWidgets import *
    
    def window():
       app = QApplication(sys.argv)
       win = QWidget()
    
       l1 = QLabel("Name")
       nm = QLineEdit()
    
       l2 = QLabel("Address")
       add1 = QLineEdit()
       add2 = QLineEdit()
       fbox = QFormLayout()
       fbox.addRow(l1,nm)
       vbox = QVBoxLayout()
    
       vbox.addWidget(add1)
       vbox.addWidget(add2)
       fbox.addRow(l2,vbox)
       hbox = QHBoxLayout()
    
       r1 = QRadioButton("Male")
       r2 = QRadioButton("Female")
       hbox.addWidget(r1)
       hbox.addWidget(r2)
       hbox.addStretch()
       fbox.addRow(QLabel("sex"),hbox)
       fbox.addRow(QPushButton("Submit"),QPushButton("Cancel"))
    
       win.setLayout(fbox)
       
       win.setWindowTitle("PyQt")
       win.show()
       sys.exit(app.exec_())
    
    if __name__ == '__main__':
       window()
    
    上面的代码产生以下输出 -
    QFormLayout 类输出