PyQT5应用第二个窗口按钮及功能无法正常运行问题咨询
问题原因
你遇到的问题核心是两处错误:
- 你在
MainWindow的openJournal方法中,没有实例化你自己实现的BlockWindow自定义类,而是直接创建了原生的QtWidgets.QMainWindow空对象,仅手动加载了UI布局。你写在BlockWindow.__init__中的loaddata调用、按钮绑定逻辑完全没有执行,自然不会加载表格数据。 - 你在
openJournal方法中直接给self.ui重新赋值,会覆盖MainWindow原本的UI实例,后续你操作主窗口的控件时会出现异常。
修复步骤
第一步:修改MainWindow.py
- 顶部导入你自己写的BlockWindow类:
from MainWindowUI import Ui_MainWindow from BlockWindow import BlockWindow # 新增这行,原来的Ui_BlockWindow导入可以直接删除
- 重写
openJournal方法,直接实例化自定义的BlockWindow即可:
def openJournal(self): self.block_win = BlockWindow() self.block_win.show()
你自己写的BlockWindow类已经在初始化时完成了UI加载、数据加载、按钮绑定的全部逻辑,不需要再手动操作原生QMainWindow和UI类。
可选修复(BlockWindow.py的小问题)
你当前BlockWindow中关闭按钮的绑定写法有问题,会导致关闭功能失效,修改为绑定实例的close方法即可:
# 原来的错误写法 # self.ui.pushButton_4.clicked.connect(BlockWindow.close) # 修改为 self.ui.pushButton_4.clicked.connect(self.close)
内容的提问来源于stack exchange,提问作者Nikita_Zhurb
相关产品推荐
相关产品推荐

