day04——继续探索 PyQt6 的窗口组件
Day 04 🚀。今天要把前几天的知识串起来,继续探索 PyQt6 的窗口组件(QLineEdit、QTextEdit、QCheckBox、QRadioButton)。这些是常见的 输入与选择控件,它们能让界面和用户的交互更丰富。
🎯 学习目标
-
理解 QLineEdit 与 QTextEdit 的区别与用途。
-
学会使用 QCheckBox(复选框) 和 QRadioButton(单选框)。
-
结合 信号槽,实现交互小案例。
🧩 知识讲解
1. QLineEdit 与 QTextEdit
-
QLineEdit:单行文本输入框。常用来输入用户名、密码、日期等。
-
常见方法:
-
setPlaceholderText("提示语")→ 占位提示 -
setEchoMode(QLineEdit.EchoMode.Password)→ 密码输入 -
text()→ 获取内容
-
-
-
QTextEdit:多行文本输入框。类似一个小记事本。
-
常见方法:
-
setPlainText("初始化内容") -
toPlainText()→ 获取内容
-
-
2. QCheckBox(复选框)
-
复选框可以 多选,常见于“我已阅读并同意用户协议”。
-
常见方法:
-
setChecked(True)→ 默认勾选 -
isChecked()→ 判断是否选中
-
3. QRadioButton(单选按钮)
-
单选按钮在 同一组 内只能选一个。
-
常见方法:
-
setChecked(True)→ 默认选中 -
isChecked()→ 判断是否选中
-
📝 今日代码示例
做一个小应用:
-
用户在 QLineEdit 输入姓名。
-
在 QTextEdit 输入“自我介绍”。
-
勾选 QCheckBox(是否同意规则)。
-
选择性别(QRadioButton 男/女)。
-
点击按钮后,汇总所有输入显示在 QLabel 上。
from PyQt6.QtWidgets import (QApplication, QLabel, QWidget, QLineEdit,
QVBoxLayout, QTextEdit, QCheckBox, QRadioButton,
QPushButton, QHBoxLayout)
import sys
# 创建应用
app = QApplication(sys.argv)
# 创建主窗口
window = QWidget()
window.setWindowTitle("day04 - 多种控件")
window.resize(400, 400)
# 姓名输入
name_label = QLabel("姓名:")
name_input = QLineEdit()
name_input.setPlaceholderText("请输入姓名")
# 自我介绍
intro_label = QLabel("自我介绍:")
intro_input = QTextEdit()
# 协议勾选
agree_checkbox = QCheckBox("我已阅读并同意相关条款")
# 性别选择
gender_label = QLabel("性别:")
male_radio = QRadioButton("男")
female_radio = QRadioButton("女")
gender_layout = QHBoxLayout()
gender_layout.addWidget(male_radio)
gender_layout.addWidget(female_radio)
# 提交按钮
submit_button = QPushButton("提交")
def on_submit():
name = name_input.text().strip()
intro = intro_input.toPlainText().strip()
agree = "已同意" if agree_checkbox.isChecked() else "未同意"
gender = "男" if male_radio.isChecked() else "女" if female_radio.isChecked() else "未选择"
result = f"姓名:{name}\n性别:{gender}\n自我介绍:{intro}\n协议状态:{agree}"
result_label.setText(result)
submit_button.clicked.connect(on_submit)
# 结果显示
result_label = QLabel("结果会显示在这里")
# 布局管理
layout = QVBoxLayout()
layout.addWidget(name_label)
layout.addWidget(name_input)
layout.addWidget(intro_label)
layout.addWidget(intro_input)
layout.addWidget(agree_checkbox)
layout.addWidget(gender_label)
layout.addLayout(gender_layout)
layout.addWidget(submit_button)
layout.addWidget(result_label)
window.setLayout(layout)
# 显示窗口
window.show()
# 进入事件循环
sys.exit(app.exec())
📌 运行效果
-
输入姓名、写一段自我介绍。
-
勾选协议(或不勾)。
-
选择性别。
-
点击提交 → 下方会显示完整结果。

今天的学习就像搭建了一个小表单界面,这是大部分应用的基础。
下一天(Day05),我们会讲 布局管理更高级的用法(GridLayout / FormLayout),让界面更美观。
您的资助是我最大的动力!
金额随意,欢迎来赏!

浙公网安备 33010602011771号