3. 文本框输入与回显

文本框输入与回显 学习卡片

任务说明

创建一个基于 QWidget 的登录界面,包含用户名输入框(QLineEdit)、密码输入框(QLineEdit,启用掩码显示)和登录按钮(QPushButton)。点击登录按钮后,在界面上以标签形式回显输入的用户名和密码。

实现代码

# login_demo.py
import sys
from PyQt5.QtWidgets import (
    QApplication, QWidget, QLabel, QLineEdit,
    QPushButton, QVBoxLayout, QHBoxLayout, QMessageBox
)

class LoginWindow(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("登录界面")
        self.setFixedSize(320, 200)

        # 用户名行
        self.user_label = QLabel("用户名:")
        self.user_edit = QLineEdit()
        self.user_edit.setPlaceholderText("请输入用户名")

        # 密码行
        self.pwd_label = QLabel("密码:")
        self.pwd_edit = QLineEdit()
        self.pwd_edit.setEchoMode(QLineEdit.Password)  # 掩码显示
        self.pwd_edit.setPlaceholderText("请输入密码")

        # 按钮
        self.login_btn = QPushButton("登录")
        self.login_btn.clicked.connect(self.on_login)

        # 回显标签
        self.result_label = QLabel("")
        self.result_label.setWordWrap(True)

        # 布局
        user_layout = QHBoxLayout()
        user_layout.addWidget(self.user_label)
        user_layout.addWidget(self.user_edit)

        pwd_layout = QHBoxLayout()
        pwd_layout.addWidget(self.pwd_label)
        pwd_layout.addWidget(self.pwd_edit)

        main_layout = QVBoxLayout()
        main_layout.addLayout(user_layout)
        main_layout.addLayout(pwd_layout)
        main_layout.addWidget(self.login_btn)
        main_layout.addWidget(self.result_label)
        self.setLayout(main_layout)

    def on_login(self):
        username = self.user_edit.text().strip()
        password = self.pwd_edit.text().strip()

        if not username or not password:
            QMessageBox.warning(self, "提示", "用户名和密码不能为空!")
            return

        # 回显输入内容
        self.result_label.setText(
            f"登录信息:\n用户名:{username}\n密码:{password}"
        )

if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = LoginWindow()
    window.show()
    sys.exit(app.exec_())

运行与验证

  1. 依赖安装:确保已安装 PyQt5,执行 pip install PyQt5。
  2. 启动程序:运行 python login_demo.py,窗口弹出。
  3. 功能验证:
    • 在用户名和密码框中输入内容,密码框显示为圆点掩码。
    • 点击“登录”按钮,窗口下方标签显示输入的用户名和密码原文。
    • 若任一输入框为空并点击登录,弹出警告对话框,且不执行回显。
  4. 通过标准:输入非空内容后点击登录,回显内容与输入完全一致;空输入时出现警告提示。

关键说明

  • setEchoMode(QLineEdit.Password) 使密码框以掩码显示,但 text() 获取的仍是原始输入值。
  • 使用 strip() 去除首尾空格,避免误判空输入。
  • 回显密码原文仅为演示输入获取功能,实际项目中不应明文展示密码。