PyQt QFormLayout类
QFormLayout 是一种创建两列表单的便捷方式,其中每一行由一个与标签相关的输入字段组成。按照惯例,左列包含标签,右列包含一个输入字段。主要是addRow()方法的三个重载addLayout()被普遍使用。
序号 | 方法和描述 |
---|---|
1 | addRow(QLabel, QWidget) 添加一个包含标签和输入区域的行。 |
2 | addRow(QLabel, QLayout) 在第二列添加一个子布局。 |
3 | addRow(QWidget) 添加一个横跨两列的小部件。 |
例子
这段代码在第一行添加了一个LineEdit字段来输入名字。然后它在下一行的第二列中为两个地址字段添加了一个垂直的盒子布局。接下来,在第三行的第二列中添加了一个包含两个单选按钮字段的水平盒子布局对象。第四行显示两个按钮 “提交 “和 “取消”。
import sys
from PyQt4.QtCore import *
from PyQt4.QtGui 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()
上述代码产生了以下输出 —