pyqt5(9)-MDI多窗体显示-QMainWindow-QDialog-mdiArea

15 篇文章 2 订阅


 

 点击上面的菜单或者工具条,在右下框中显示出被点击的窗口。
 网上对mdiArea的说明大部分是doc版的,我这是QMainWindow-QDialog版本的。
 其实无论哪种都是3步
 

#1.DOC
 def newDocSub(self):
     newDoc = QMdiSubWindow(self)               #1.创建子窗口
     newDoc.setWindowTitle('新文档 ' + str(self.newDocIndex))
     self.newDocIndex += 1
     newDoc.setWidget(QPlainTextEdit(newDoc))
     self.mdiArea.addSubWindow(newDoc)         #2.添加实例到MDI区域
     newDoc.show()                             #3.显示

#2. mainwin
    #前面创建实例 self.subwin1=CSubWindow1()
    def onSubwin1(self):
        self.mdiArea.addSubWindow(self.subwin1)
        self.subwin1.show()
#3. Dialog
    # 前面创建实例 self.dlg1=Dlg1()
    def onDlg1(self):
        print("onDlg1")     
        self.mdiArea.addSubWindow(self.dlg1)
        self.dlg1.show()

main

class Cui_main(QMainWindow,Ui_MainWindow):
    def __init__(self):
        super(Cui_main, self).__init__()
        self.setupUi(self)
        self.retranslateUi(self)
        self.dlg1=Dlg1()
        self.dlg2 =Dlg2()
        self.subwin1=CSubWindow1()
        self.subwin2=CSubWindow2()
        self.actiondlg1.triggered.connect(self.onDlg1)
        self.actiondlg2.triggered.connect(self.onDlg2)
        self.actionsubwin1.triggered.connect(self.onSubwin1)
        self.actionsubwin2.triggered.connect(self.onSubwin2)

    def initUi(self):
        pass
    def newSub(self):
        newDoc = QMdiSubWindow(self)               #1.创建子窗口
        newDoc.setWindowTitle('新文档 ' + str(self.newDocIndex))
        self.newDocIndex += 1
        newDoc.setWidget(QPlainTextEdit(newDoc))
        self.mdiArea.addSubWindow(newDoc)         #2.添加实例到MDI区域
        newDoc.show()                             #3.显示
      
    def onSubwin1(self):
        # 把win加载进MDI中
        print("onSubwin1")
        self.mdiArea.addSubWindow(self.subwin1)
        self.subwin1.show()
    def onSubwin2(self):
        print("onSubwin2")
        self.mdiArea.addSubWindow(self.subwin2)
        self.subwin2.show()
    def onDlg1(self):
        print("onDlg1")     #   self.dlg1.show()
        self.mdiArea.addSubWindow(self.dlg1)
        self.dlg1.show()
    def onDlg2(self):
        print("onDlg2")
        self.mdiArea.addSubWindow(self.dlg2)
        self.dlg2.show()

if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = Cui_main()
    MainWindow.show()
    sys.exit(app.exec_())

对应的源码地址:pyqt5--mdiArea-QMainWindow-Dialog-多窗口显示-Python文档类资源-CSDN下载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值