Qt Designer配合Python将逻辑放独立文件时报Ui_MainWindow无属性错误
错误原因
你自定义的fillContactList方法是你自己编写的mainwindow子类的成员,Qt Designer自动生成的Ui_MainWindow类本身没有这个方法。你在入口代码中错误地实例化了原生Ui_MainWindow类调用该方法,就会触发属性不存在的报错。
另外你编写的mainwindow子类__init__方法中没有调用setupUi初始化界面,后续运行也会找不到界面控件。
修正方案
1. 补全子类初始化逻辑
class mainwindow(QMainWindow, Ui_MainWindow): def __init__(self): super(mainwindow, self).__init__() self.setupUi(self) # 新增:调用界面初始化方法,将控件绑定到当前实例 self.setWindowTitle("Skills In Motion")
2. 替换入口执行逻辑
if __name__ == "__main__": app = QtWidgets.QApplication(sys.argv) window = mainwindow() # 直接实例化你自定义的子类,不需要单独实例化原生QMainWindow和Ui_MainWindow window.fillContactList() # 调用子类自身的方法 window.show() sys.exit(app.exec())
额外注意
你的代码中用到了self.onSelectionContact作为信号槽的回调函数,需要你在mainwindow类中补充实现这个方法,否则运行时还会抛出属性不存在的错误。
内容的提问来源于stack exchange,提问作者Irene
相关产品推荐
相关产品推荐

