运行PyQt5代码无法输出完整姓名,求原因解析
问题原因及解决方法
你的代码存在两个核心问题,导致无法获取并打印完整姓名:
- 没有添加用于输入姓名、姓氏的输入控件(QLineEdit),界面上只有提示标签,用户根本无法输入内容
- 完全没有编写获取输入内容、并打印完整姓名的逻辑代码
修改后的完整代码
import sys from PyQt5 import QtWidgets from PyQt5.QtWidgets import QApplication, QMainWindow, QLineEdit, QPushButton from PyQt5.QtGui import QIcon def print_full_name(name_edit, surname_edit): # 获取输入的姓名和姓氏并打印 full_name = f"{name_edit.text()} {surname_edit.text()}" print(f"完整姓名:{full_name}") def window(): app = QApplication(sys.argv) win = QMainWindow() win.setGeometry(800, 200, 900, 700) win.setWindowTitle("TTL Framework") win.setWindowIcon(QIcon('icon.jpg')) # 姓名标签 lbl_name = QtWidgets.QLabel(win) lbl_name.setText('Enter Name :') lbl_name.move(50,50) # 姓名输入框 name_edit = QLineEdit(win) name_edit.move(150, 50) name_edit.resize(200, 25) # 姓氏标签 lbl_surname = QtWidgets.QLabel(win) lbl_surname.setText('Enter Surname :') lbl_surname.move(50,90) # 姓氏输入框 surname_edit = QLineEdit(win) surname_edit.move(150, 90) surname_edit.resize(200, 25) # 打印按钮 print_btn = QPushButton("打印完整姓名", win) print_btn.move(50, 130) # 绑定按钮点击事件,传递输入框对象 print_btn.clicked.connect(lambda: print_full_name(name_edit, surname_edit)) win.show() sys.exit(app.exec_()) window()
说明
- 添加了
QLineEdit控件,让用户可以输入姓名和姓氏 - 添加了
QPushButton按钮,点击后触发print_full_name函数,获取两个输入框的内容并拼接打印完整姓名 - 用lambda表达式传递输入框对象到槽函数,确保能正确读取输入内容
内容的提问来源于stack exchange,提问作者tushar nampalliwar
相关产品推荐
相关产品推荐

