Python 3.x Python3导入module.py只是main.py的一部分代码

Python 3.x Python3导入module.py只是main.py的一部分代码,python-3.x,import,pyqt5,Python 3.x,Import,Pyqt5,这是一个窗口打开子窗口操作打开新的子窗口。但是我尝试使用import,而不是不工作的类。我只想缩短代码行而不是长代码行。我试图只使用child2.pymain.py的一部分,但不起作用import child2.py不会创建新的mdiChildWindow main.py import sys, time from PyQt5 import uic from PyQt5.QtWidgets import QMainWindow, QApplication class MainWindow(QM

这是一个窗口<代码>打开子窗口操作打开新的子窗口。但是我尝试使用import,而不是不工作的类。我只想缩短代码行而不是长代码行。我试图只使用
child2.py
main.py的一部分,但不起作用
import child2.py
不会创建新的mdiChildWindow

main.py

import sys, time
from PyQt5 import uic
from PyQt5.QtWidgets import QMainWindow, QApplication

class MainWindow(QMainWindow):
    def __init__(self):
        super(MainWindow, self).__init__()
        uic.loadUi("mainWindow.ui",self)

        self.actionChildWindow.triggered.connect(self.openChild)        
        self.actionChildWindow2.triggered.connect(self.openChild2)

    def openChild(self): 
        childWindow=openChild("child.ui")
        childWindow.add(self.mdiArea)

    def openChild2(self): 
        import child2
        child2.childWindow2=openChild2("child2.ui")
        child2.childWindow2.add(self.mdiArea)

class openChild(QMainWindow):
    def __init__(self,modul):
        super().__init__()
        uic.loadUi(modul,self)

    def add(self,addToMainWindow):
        addToMainWindow.addSubWindow(self)
        self.show()

def main():
    app = QApplication(sys.argv)
    ex = MainWindow()
    ex.show()
    sys.exit(app.exec_())

if __name__ =='__main__':
    main()
儿童2.py

class openChild2(QMainWindow):
    def __init__(self,modul):
        super().__init__()
        uic.loadUi(modul,self)

    def add(self,addToMainWindow):
        addToMainWindow.addSubWindow(self)
        self.show()

好的,你的代码有一些问题。我想你特别提到的是导入child2.py的问题。您的问题是,您试图在函数内部导入如下内容:

def openChild2(self): 
    import child2
    child2.childWindow2=openChild2("child2.ui")
    child2.childWindow2.add(self.mdiArea)
实际上,您应该做的是像其他导入一样在文件的开头导入。因为您只导入一个类,所以我喜欢使用from语法。像这样:

import sys, time
from PyQt5 import uic
from PyQt5.QtWidgets import QMainWindow, QApplication
from child2 import openChild2

然后,您可以像在main.py文件中定义类一样使用openChild2。

对不起,我不太理解您的问题,您可以试着稍微解释清楚一点吗?actionChildWindow正在工作,但actionChildWindow2不工作。