PyQt5加载ui文件报SyntaxError,为何无法使用delclass作为变量名
问题原因
报错的核心原因是 del是Python的内置关键字,不允许作为参数名、变量名、类名使用。
你在Del_btn.ui文件中将顶层窗口的类名、对象名都设置为了del,PyQt5的uic工具将ui文件转换为Python代码时,会自动生成def setupUi(self, del):的非法语句,触发语法错误。这个错误和你Python代码里定义的delclass变量名无关,所以修改delclass为Delclass不能解决问题。
解决步骤
- 打开Qt Designer加载
Del_btn.ui文件 - 做两处修改:
- 在右侧对象管理面板选中最顶层的
QDialog对象,将它的name属性从del修改为del_dialog(或其他不含Python关键字的合法名称) - 点击顶部菜单栏「编辑」-「编辑类信息」,将类名从
del修改为DelDialog(任意合法名称即可)
- 在右侧对象管理面板选中最顶层的
- 保存修改后的
Del_btn.ui文件,重新运行Python代码即可解决语法报错。
补充注意事项
你当前Python代码中还有一处隐含错误:uic.loadUiType()返回的是(UI类, 基础类)的元组,你只有calclass的取值加了[0]提取UI类,其余addclass/delclass/editclass都没有加[0],后续继承这些类时会触发类型错误,建议统一修改为:
addclass = uic.loadUiType('Add_btn.ui')[0] delclass = uic.loadUiType('Del_btn.ui')[0] editclass = uic.loadUiType('Edit_btn.ui')[0]
内容的提问来源于stack exchange,提问作者Mason Lin
相关产品推荐
相关产品推荐

