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
相关产品推荐
相关产品推荐

