3. 文本框输入与回显

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

任务目标

创建一个Qt Widgets应用程序,包含一个QLineEdit文本框和一个QLabel标签。当用户在文本框中输入文字时,标签实时显示当前输入的内容。

实现方案

使用QLineEdit的textChanged信号,连接到自定义槽函数,将文本框内容同步设置到QLabel上。该信号在文本内容每次变化时(包括输入、删除、粘贴等操作)都会触发,从而实现实时回显。

完整代码

# main.py
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QLineEdit, QLabel

class TextEchoWindow(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("文本框输入与回显")
        self.resize(300, 120)

        # 创建控件
        self.input_edit = QLineEdit(self)
        self.input_edit.setPlaceholderText("请输入文字...")
        self.output_label = QLabel("这里将实时显示输入内容", self)

        # 布局
        layout = QVBoxLayout()
        layout.addWidget(self.input_edit)
        layout.addWidget(self.output_label)
        self.setLayout(layout)

        # 信号连接:文本变化时更新标签
        self.input_edit.textChanged.connect(self.update_label)

    def update_label(self, text):
        self.output_label.setText(text)

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

运行方式

  1. 确保已安装PyQt5:pip install PyQt5
  2. 运行程序:python main.py

验证方法

程序启动后,在文本框中逐字输入任意内容(如"Hello Qt"),观察下方标签是否同步显示相同文字。删除部分字符或清空文本框,标签内容应随之更新。当文本框为空时,标签显示为空字符串,不再显示占位提示文字。

关键说明

textChanged信号会携带当前文本框的完整字符串作为参数,因此槽函数update_label直接将该字符串设置为标签文本即可。无需额外读取控件属性,连接建立后回显逻辑自动生效。