Python 3.x Python3导入module.py只是main.py的一部分代码
这是一个窗口<代码>打开子窗口操作打开新的子窗口。但是我尝试使用import,而不是不工作的类。我只想缩短代码行而不是长代码行。我试图只使用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
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不工作。