Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python GUI MDI子窗口仅在第一次按下按钮时显示_Python_Python 3.x_Pyqt_Pyqt5_Qmdiarea - Fatal编程技术网

Python GUI MDI子窗口仅在第一次按下按钮时显示

Python GUI MDI子窗口仅在第一次按下按钮时显示,python,python-3.x,pyqt,pyqt5,qmdiarea,Python,Python 3.x,Pyqt,Pyqt5,Qmdiarea,我希望这里有一个简单的问题。我已经用QT设计器和MDI区域的子窗口创建了一个非常大的GUI。我使用pyuic5将它从.ui文件转换为.py文件。我编写了一个函数,当按下按钮时打开子窗口。我第一次按下按钮时,它工作正常。我遇到的问题是,第二次按下按钮时,MDI区域内只显示一个空白子窗口。如何在每次按下按钮时使其正确显示。我将在下面附上如何启动子窗口的代码。任何建议都将不胜感激。谢谢你的时间和帮助 单击按钮时调用的代码 def windowaction(self): sub = QtWid

我希望这里有一个简单的问题。我已经用QT设计器和MDI区域的子窗口创建了一个非常大的GUI。我使用pyuic5将它从
.ui
文件转换为
.py
文件。我编写了一个函数,当按下按钮时打开子窗口。我第一次按下按钮时,它工作正常。我遇到的问题是,第二次按下按钮时,MDI区域内只显示一个空白子窗口。如何在每次按下按钮时使其正确显示。我将在下面附上如何启动子窗口的代码。任何建议都将不胜感激。谢谢你的时间和帮助

单击按钮时调用的代码

def windowaction(self):

    sub = QtWidgets.QMdiSubWindow()
    sub.setWidget(self.Load_Input)
    sub.setObjectName("Load_Input_window")
    sub.setWindowTitle("Load Input")
    self.mdiArea.addSubWindow(sub)
    sub.show()
第一次单击按钮时

第二次单击按钮

将相同的小部件对象添加到不同的
qmdusibwindow
时会出现问题,您必须创建一个新对象并将其添加到新的
qmdusibwindow

def windowaction(self):
    sub = QtWidgets.QMdiSubWindow()
    Load_Input = LoadInput()
    sub.setWidget(Load_Input)
    sub.setObjectName("Load_Input_window")
    sub.setWindowTitle("Load Input")
    self.mdiArea.addSubWindow(sub)
    sub.show()

谢谢你的回复。当我尝试那个代码时,我得到一个错误,上面写着“
TypeError:'QWidget'对象不可调用”
。我注意到唯一的区别是您有
Load\u Input=LoadInput()
,其中我有相当于
Load\u Input=LoadInput
()
有什么区别。另外,因为我正在创建一个新对象,所以在创建新对象之前删除旧对象会更好吗?最后,我希望一次只打开一个“加载输入”窗口。在您的代码中,您应该执行类似于self.Load_input=,您可以向我显示该行代码,或者通过github、dropbox或类似工具共享您的项目。我刚刚制作了一个github存储库,可以在此处找到。此外,该函数位于
Main.py
文件中。我正试图将其全部分离。您可以共享ui文件。您必须分离每个窗口的设计,创建一个新表单,在下面我已分离的部分中,当您创建类对象时,您必须执行类似于obj=
myclass()
,而不是使用已创建的对象。