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()
上述代码产生以下输出−