PyQt4:修改子窗口时如何更改标题

2024-10-01 13:43:04 发布

您现在位置:Python中文网/ 问答频道 /正文

class MdiChild(QtGui.QTextEdit):
    sequenceNumber = 1

    def __init__(self):
        super(MdiChild, self).__init__()

        self.setAttribute(QtCore.Qt.WA_DeleteOnClose)
        self.isUntitled = True

    def newFile(self):
        self.isUntitled = True
        self.curFile = "document%d.txt" % MdiChild.sequenceNumber
        MdiChild.sequenceNumber += 1
        self.setWindowTitle(self.curFile + '[*]')

        self.document().contentsChanged.connect(self.documentWasModified)

    def documentWasModified(self):
        self.setWindowModified(self.document().isModified())

此代码在创建新的子窗口时将document1.txt显示为子窗口的标题,并保持递增。当我在QTextedit中更改文本时,子窗口的标题将从document1.txt更改为document1.txt.*并且如果我删除*周围的[],则当打开新窗口时,它将显示document1.txt.*。所以我想知道[]在这个文档标题代码中的作用是什么,以及*是如何附加到文档标题的。 同时请说出以下一行的含义:

^{pr2}$

Tags: 代码文档selftxttrue标题initdef
1条回答
网友
1楼 · 发布于 2024-10-01 13:43:04

docs中所述

如果使用windowModified机制,则窗口标题必须包含“[]”占位符,该占位符指示“”应出现的位置。通常,它应该出现在文件名之后(例如,“document1.txt[*]-Text Editor”)。如果windowModified属性为false(默认值),则只需删除占位符。在

现在你要问第二个问题self.setAttribute(QtCore.Qt.WA_DeleteOnClose)WA_DeleteOnClose清除关闭文档的内存。在

相关问题 更多 >