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 Class Output
pyqt_layout_management.htm
广告
© . All rights reserved.