2014-03-30 20 views
1
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()) 

这段代码显示中创建并保持increamenting新的子窗口时document1.txt作为子窗口的标题更改子窗口的标题。子窗口的标题从document1.txt更改为document1.txt。*当我在QTextedit中更改文本时,如果我在[*]周围移除*,则会在打开新窗口时显示document1.txt。*。所以我想知道这个代码中文件标题的[]是什么,以及*如何附加到文件标题。 而且也请告知以下线的含义是:
PyQt4的:如何当它被修改

self.setAttribute(QtCore.Qt.WA_DeleteOnClose) 

回答

2

正如docs

提到如果使用windowModified机制,窗口标题必须包含“[]”占位符,这指示''应出现的位置。通常,它应该出现在文件名后面(例如,“document1.txt [*] - 文本编辑器”)。如果windowModified属性为false(默认值),则简单地删除占位符。

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

相关问题