PyQt5中settings类调用check方法报radioButton属性不存在错误排查
PyQt5 AttributeError 错误原因解析
- 核心问题:混淆了类与实例的属性访问
你调用settings.check(settings)时,第二个settings是类本身,不是该类的实例对象。radioButton是通过uic.loadUi绑定到settings类实例上的控件属性,类本身不会继承这个自定义控件,直接用类名访问自然会报QWidget没有该属性的错误。 - 常见触发场景
- 调用check方法时,传入的参数是settings类(比如
settings)而非类的实例(比如先创建my_settings = settings(),再传入my_settings) - 在settings类的check方法内部,错误地通过类名(
settings.radioButton)访问控件,而不是用实例的self.radioButton
- 调用check方法时,传入的参数是settings类(比如
- 修复建议
- 确保调用check方法时传入的是settings类的实例对象;如果check方法本身是实例方法,其实不需要额外传实例参数,直接通过
self就能访问控件属性 - 检查check方法的实现,把所有访问控件的代码改成
self.radioButton这种实例属性访问方式
- 确保调用check方法时传入的是settings类的实例对象;如果check方法本身是实例方法,其实不需要额外传实例参数,直接通过
内容的提问来源于stack exchange,提问作者Zayan
相关产品推荐
相关产品推荐

