- PyQt 教程
- PyQt - 首页
- PyQt - 简介
- PyQt - 环境搭建
- PyQt - Hello World
- PyQt - 主要类
- PyQt - 使用 Qt Designer
- PyQt - 元对象
- PyQt 信号与槽
- PyQt - 信号和槽
- PyQt - 支持和信号
- PyQt - 未绑定和绑定信号
- PyQt - 使用 PyQtSignal 创建新信号
- PyQt - 连接、断开和发射信号
- PyQt - 槽装饰器
- PyQt - 槽连接
- PyQt 布局
- PyQt - 布局管理
- PyQt - QBoxLayout
- PyQt - QGridLayout
- PyQt - QFormLayout
- PyQt - QHBoxLayout
- PyQt - QVBoxLayout
- PyQt - QStackedLayout
- PyQt - QGraphicsGridLayout
- PyQt - QGraphicsAnchorLayout
- PyQt - QGraphicsLayout
- PyQt - QGraphicsLinearLayout
- PyQt 基本控件
- PyQt - 基本控件
- PyQt - QLabel 控件
- PyQt - QLineEdit 控件
- PyQt - QPushButton 控件
- PyQt - QRadioButton 控件
- PyQt - QCheckBox 控件
- PyQt - QComboBox 控件
- PyQt - QSpinBox 控件
- PyQt - QMessageBox
- PyQt - QDialogButtonBox 控件
- PyQt - QFontComboBox 控件
- PyQt - QDoubleSpinBox 控件
- PyQt - QToolBox 控件
- PyQt - QDialog 类
- PyQt - QMessageBox
- PyQt - 多文档界面
- PyQt - 拖放操作
- PyQt 绘图 API
- PyQt - 绘图 API
- PyQt 数据库
- PyQt - 数据库处理
- PyQt 核心知识
- PyQt - BrushStyle 常量
- PyQt - QClipboard
- PyQt - QPixmap 类
- PyQt 有用资源
- PyQt - 快速指南
- PyQt - 有用资源
- PyQt - 讨论
PyQt - QFormLayout 类
QFormLayout 是一种创建两列表单的便捷方式,其中每一行都包含一个与标签关联的输入字段。按照惯例,左侧列包含标签,右侧列包含输入字段。
以下是 addRow() 方法和 addLayout() 方法的三个重载,它们常用。
| 序号 | 方法及描述 |
|---|---|
| 1 |
addRow(QLabel, QWidget) 添加一行,包含标签和输入字段 |
| 2 |
addRow(QLabel, QLayout) 在第二列添加子布局 |
| 3 |
addRow(QWidget) 添加一个跨越两列的控件 |
PyQt 中的文本容器和单选按钮
LineEdit() 方法创建一个单行文本输入控件容器,而 QRadioButton() 创建选项选择。这里,下面的程序使用以下组件构建 GUI 表单 - 使用 QLabel() 的控件、使用 QRadioButton() 的单选按钮和使用 QPushButton() 创建的可点击按钮。
示例
在这个示例中,程序在第一行添加了一个 LineEdit 字段用于输入姓名。然后,它在下一行的第二列中添加了一个包含两个地址字段的垂直盒子布局。接下来,在第三行的第二列中添加了一个包含两个单选按钮字段的水平盒子布局对象。第四行显示了两个按钮“提交”和“取消”。
import sys
from PyQt6.QtCore import *
from PyQt6.QtGui import *
from PyQt6.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)
# Create a button group for the radio buttons
gender_group = QButtonGroup()
r1 = QRadioButton("Male")
r2 = QRadioButton("Female")
# Add the radio buttons to the group
gender_group.addButton(r1)
gender_group.addButton(r2)
hbox = QHBoxLayout()
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 类创建注册表单
每个网站都会构建一个注册表单来存储数据。它允许用户从多个位置使用信息注册表单。这里,我们使用 addrow() 方法向注册页面添加新的标签,并使用 show() 方法显示结果。
示例
在这个示例中,我们演示了如何使用 QFormLayout 类创建注册表单。
import sys
from PyQt6.QtWidgets import QApplication, QWidget, QPushButton, QLineEdit, QFormLayout
class MainWindow(QWidget):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.setWindowTitle('Sign Up Form')
layout = QFormLayout()
self.setLayout(layout)
layout.addRow('Enter the name:', QLineEdit(self))
layout.addRow('Enter the Email:', QLineEdit(self))
layout.addRow('Enter the Pincode:', QLineEdit(self, echoMode=QLineEdit.EchoMode.Password))
layout.addRow('Enter the Mobile Number:', QLineEdit(self))
layout.addRow(QPushButton('Sign Up Form'))
# show the window
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()
sys.exit(app.exec())
输出
执行代码后,我们在 PyQt 窗口中得到注册表单的结果:
广告