0507QMultipleDoc

import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *

class demoQMultipleDoc(QMainWindow):
    count = 0
    def __init__(self):
        super(demoQMultipleDoc, self).__init__()

        self.setWindowTitle("0507QMultipleDoc")

        #创建菜单栏
        bar = self.menuBar()
        file = bar.addMenu("File")
        file.addAction("New")
        file.addAction("Cascade")
        file.addAction("Tiled")
        closeSub = QAction("Close SubWindow", self)
        # +号两边不能有空格
        closeSub.setShortcut("Ctrl+C")
        file.addAction(closeSub)

        file.triggered[QAction].connect(self.windowAction)

        #新建一个主窗口并设置为中央控件
        self.mdi = QMdiArea()
        self.setCentralWidget(self.mdi)


    def windowAction(self, q):
        print(q.text() + " triggered")

        if q.text() == "New":
            demoQMultipleDoc.count += 1
            #新建子窗口
            subWin = QMdiSubWindow()
            #设定窗口内使用的控件
            subWin.setWidget(QTextEdit())
            subWin.setWindowTitle("subWindow" + str(demoQMultipleDoc.count))
            #将子窗口加入到主窗口并显示
            self.mdi.addSubWindow(subWin)
            subWin.show()

        if q.text() == "Cascade":
            self.mdi.cascadeSubWindows()

        if q.text() == "Tiled":
            self.mdi.tileSubWindows()

        if q.text() == "Close SubWindow":
            if demoQMultipleDoc.count > 0:
                demoQMultipleDoc.count -= 1
            self.mdi.closeActiveSubWindow()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    win = demoQMultipleDoc()
    win.show()
    sys.exit(app.exec_())

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值