Mdi sub window 关闭
Mdi sub window close
我想通过按下 window 中的按钮关闭 MDI subwindow
,而不是通过顶部的 x
关闭它。我有另一个包含一些 类 的文件,其中包含有关在 MDI 区域中打开的 window 的所有信息。我已尝试 self.close()
,但这样会使 window 打开并清除 window 中的所有小部件。我将 post 下面的代码说明如何将 subwindow 添加到 MDI 区域。
subWindow = QtWidgets.QMdiSubWindow()
New_Window = NewMDIWindow()
subWindow.setWidget(New_Window)
subWindow.setObjectName("New_Window")
subWindow.setWindowTitle("New SubWindow")
self.MainUi.mdiArea.addSubWindow(subWindow )
subWindow.show()
X 按钮关闭 QMdiSubWindow,而不是其上的小部件,因此该按钮应该关闭子窗口:
your_QPushButton.clicked.connect(your_QMdiSubWindow.close)
完整示例:
class MainWindow(QtWidgets.QMainWindow):
def __init__(self, parent=None):
QtWidgets.QMainWindow.__init__(self, parent)
self.centralwidget = QtWidgets.QWidget(self)
self.setCentralWidget(self.centralwidget)
self.centralwidget.setLayout(QtWidgets.QVBoxLayout(self.centralwidget))
self.mdiArea = QtWidgets.QMdiArea(self.centralwidget)
self.centralwidget.layout().addWidget(self.mdiArea)
subWindow = QtWidgets.QMdiSubWindow(self)
widget = QtWidgets.QWidget()
widget.setLayout(QtWidgets.QVBoxLayout())
btn = QtWidgets.QPushButton("close", widget)
widget.layout().addWidget(btn)
btn.clicked.connect(subWindow.close)
subWindow.setWidget(widget)
subWindow.setObjectName("New_Window")
subWindow.setWindowTitle("New SubWindow")
self.mdiArea.addSubWindow(subWindow)
if __name__ == '__main__':
import sys
app = QtWidgets.QApplication(sys.argv)
w = MainWindow()
w.show()
sys.exit(app.exec_())
我想通过按下 window 中的按钮关闭 MDI subwindow
,而不是通过顶部的 x
关闭它。我有另一个包含一些 类 的文件,其中包含有关在 MDI 区域中打开的 window 的所有信息。我已尝试 self.close()
,但这样会使 window 打开并清除 window 中的所有小部件。我将 post 下面的代码说明如何将 subwindow 添加到 MDI 区域。
subWindow = QtWidgets.QMdiSubWindow()
New_Window = NewMDIWindow()
subWindow.setWidget(New_Window)
subWindow.setObjectName("New_Window")
subWindow.setWindowTitle("New SubWindow")
self.MainUi.mdiArea.addSubWindow(subWindow )
subWindow.show()
X 按钮关闭 QMdiSubWindow,而不是其上的小部件,因此该按钮应该关闭子窗口:
your_QPushButton.clicked.connect(your_QMdiSubWindow.close)
完整示例:
class MainWindow(QtWidgets.QMainWindow):
def __init__(self, parent=None):
QtWidgets.QMainWindow.__init__(self, parent)
self.centralwidget = QtWidgets.QWidget(self)
self.setCentralWidget(self.centralwidget)
self.centralwidget.setLayout(QtWidgets.QVBoxLayout(self.centralwidget))
self.mdiArea = QtWidgets.QMdiArea(self.centralwidget)
self.centralwidget.layout().addWidget(self.mdiArea)
subWindow = QtWidgets.QMdiSubWindow(self)
widget = QtWidgets.QWidget()
widget.setLayout(QtWidgets.QVBoxLayout())
btn = QtWidgets.QPushButton("close", widget)
widget.layout().addWidget(btn)
btn.clicked.connect(subWindow.close)
subWindow.setWidget(widget)
subWindow.setObjectName("New_Window")
subWindow.setWindowTitle("New SubWindow")
self.mdiArea.addSubWindow(subWindow)
if __name__ == '__main__':
import sys
app = QtWidgets.QApplication(sys.argv)
w = MainWindow()
w.show()
sys.exit(app.exec_())