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

PyQt5中如何获取QLineEdit控件的输入数据?

问题解决:AttributeError: 'CreateDBWindow' object has no attribute 'host'

错误原因很明确:你在MainUI()方法里定义的host是局部变量,仅在该函数内部的作用域有效,类的其他方法(比如createDatabase)无法通过self.host访问到它。

解决方法就是把host定义为类的实例属性,在创建QLineEdit时加上self.前缀,让它成为整个类实例可访问的属性:

修改后的代码如下:

class CreateDBWindow(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle('mood tracker')
        self.setFixedWidth(1080)
        self.setFixedHeight(720)
        self.MainUI()
        self.show()

    def createDatabase(self):
        print(self.host.text())

    def MainUI(self):
        # 将局部变量host改为实例属性self.host
        self.host = QLineEdit(self)
        self.host.move(190,150)
        self.host.setFixedWidth(500)
        self.host.setFixedHeight(40)
        self.host.setStyleSheet('font-size: 20px')
        self.host.show()

修改后,createDatabase方法就能通过self.host正确访问到QLineEdit控件,获取用户输入的内容了。

内容的提问来源于stack exchange,提问作者Percy Singh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 15:26:57