PyQt5 – QFormLayout类
QFormLayout是一种创建两列表单的便捷方式,其中每一行由一个与标签相关的输入字段组成。按照惯例,左列包含标签,右列包含一个输入字段。主要有三个addRow()方法的重载addLayout()是常用的。
Sr.No. | 方法和描述 |
---|---|
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()
上述代码产生了以下输出 —