You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 02:20:25