出走的蚂蚁 2023-03-23 23:01 采纳率: 69.2%
浏览 41

UI继承后被调用没有初始化

main.py如下:

import sys
from PyQt5 import QtWidgets
from interface import Ui_MainWindow


class My_MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):              # 主窗口
    def __init__(self, parent=None):
        super(My_MainWindow, self).__init__(parent)     # 初始化
        self.setupUi(self)
        self.pushButton.clicked.connect(self.addw)          # 调用
        self.pushButton_3.clicked.connect(self.close)     # 关闭窗口

    def addw(self):
        import main_add
        self.one = main_add.QtWidgets.QMainWindow()
        self.one.show()

if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = My_MainWindow()
    MainWindow.show()
    sys.exit(app.exec_())

main_add.py如下:(可以单独运行打开UI窗口)

import sys
from PyQt5 import QtWidgets
from add import Ui_MainWindow


class My_MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):  # 主窗口
    def __init__(self, parent=None):
        super(My_MainWindow, self).__init__(parent)  # 初始化
        self.setupUi(self)
        self.pushButton.clicked.connect(self.count)  # 调用
        self.pushButton_2.clicked.connect(self.close)  # 关闭窗口

    def count(self):
        a = float(self.lineEdit.text())
        b = float(self.lineEdit_2.text())
        c = a + b
        self.lineEdit_3.setText(str(c))


if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = My_MainWindow()
    MainWindow.show()
    sys.exit(app.exec_())


但是在 main.py 中调用 main_add.py 点击后可以打开窗口,但是打开的窗口没有能够成功初始化。要怎么解决么???

  • 写回答

1条回答 默认 最新

  • IT_service_mesh 2023-03-23 23:07
    关注

    参考GPT和自己的思路:

    在 main.py 中调用 main_add.py 创建的窗口对象是没有成功初始化的,原因是因为你在 My_MainWindow 类中创建了一个名为 one 的属性来存储 main_add.QMainWindow() 对象,但是这个对象没有被正确初始化,因为没有调用它的 __init__() 方法。

    要解决这个问题,你可以在 My_MainWindow 类的 addw() 方法中调用 one 对象的 __init__() 方法,如下所示:

    def addw(self):
        import main_add
        self.one = main_add.My_MainWindow()
        self.one.__init__()
        self.one.show()
    

    这样就能够成功初始化 main_add.QMainWindow() 对象并打开窗口了。

    评论

报告相同问题?

问题事件

  • 修改了问题 3月23日
  • 创建了问题 3月23日

悬赏问题

  • ¥15 工价表引用工艺路线,应如何制作py和xml文件
  • ¥15 根据历史数据,推荐问题类型
  • ¥15 需要仿真图,简单的二阶系统实例
  • ¥15 stm32光控照明仿真
  • ¥15 使用人工智能的方法生成满足一定统计参数要求的随机数序列
  • ¥15 SENT协议中相关问题咨询
  • ¥15 URL地址href跳转问题
  • ¥15 mysql数据库备份恢复
  • ¥15 mmdetection mask-rcnn
  • ¥25 matlab可以将微分方程的解显示为相图形式吗