PyQt6自定义对话框内容不显示问题求助
问题分析与解决
核心原因:布局未绑定到对话框
你在EditDialog的初始化方法中创建了QVBoxLayout并添加了所有输入控件和按钮,但没有将这个布局设置给对话框本身。Qt的容器类(包括QDialog)必须通过setLayout()方法关联布局,否则添加的控件不会被渲染到界面上,最终导致弹出空白对话框。
解决方法:在布局代码的末尾添加一行代码,将布局绑定到对话框:
self.setLayout(layout)
额外潜在问题:未处理无选中行的异常
如果用户点击编辑按钮时没有选中表格中的任何行,main_window.table.currentRow()会返回-1,此时调用main_window.table.item(index, 1)会得到None,继续调用.text()会触发AttributeError,导致对话框初始化失败,同样会出现空白界面。
建议添加选中判断逻辑,提前拦截这种情况:
index = main_window.table.currentRow() if index == -1: from PyQt5.QtWidgets import QMessageBox QMessageBox.warning(self, "提示", "请先选中一条记录") self.close() return # 后续获取学生姓名、课程等代码
内容的提问来源于stack exchange,提问作者GouthamNP
相关产品推荐
相关产品推荐

