MDI(Multiple Document Interface,多文档界面)窗口是一种在一个主窗口中显示多个子窗口的界面布局模式。在MDI窗口中,主窗口充当容器,而子窗口则是主窗口中的可独立操作的文档窗口。
MDI窗口通常用于应用程序需要同时处理多个文档的情况,例如文本编辑器、图像处理软件等。每个子窗口表示一个独立的文档,用户可以在主窗口内打开、关闭、切换、排列子窗口,以便同时查看和编辑多个文档。
在PyQt中,可以通过QMainWindow类和QMdiArea类来实现MDI窗口。QMainWindow类作为主窗口,提供了菜单、工具栏和状态栏等常见的应用程序框架组件,而QMdiArea类则提供了一个可用于容纳和管理多个子窗口的区域。
以下是使用PyQt实现MDI窗口的基本示例代码:
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QMdiArea, QMdiSubWindow, QTextEdit
class MyMainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.mdiArea = QMdiArea()
self.setCentralWidget(self.mdiArea)
subwindow1 = QMdiSubWindow()
subwindow1.setWidget(QTextEdit())
self.mdiArea.addSubWindow(subwindow1)
subwindow2 = QMdiSubWindow()
subwindow2.setWidget(QTextEdit())
self.mdiArea.addSubWindow(subwindow2)
self.setWindowTitle("MDI Window")
self.show()
if __name__ == "__main__":
app = QApplication(sys.argv)
mainWindow = MyMainWindow()
sys.exit(app.exec_())
上述代码创建了一个简单的MDI窗口,包含一个主窗口和两个子窗口,每个子窗口都是一个QTextEdit文本编辑框。使用QMdiArea
作为主窗口的中央部件,并使用addSubWindow
方法将子窗口添加到MDI区域。
这样,运行代码后会显示一个带有两个子窗口的MDI窗口。您可以在主窗口中打开、关闭、切换子窗口,以及进行其他操作。