PyQt:在QPlainTextEdit中修改星号时遇到问题

问题描述:

我遇到了QPlainTextEdit问题。我希望内容被修改后,“内容已被修改”星号出现在标题栏中。PyQt:在QPlainTextEdit中修改星号时遇到问题

在下面的示例中,输入几个字母。星号应该出现。按Ctrl + S,星号消失,因为它应该。但是,如果你再输入几个字母......为什么星号不会再出现?

import os, sys 

from PyQt4 import QtGui, QtCore 

class MyTextEdit(QtGui.QPlainTextEdit): 
    def __init__(self): 
     QtGui.QPlainTextEdit.__init__(self)  

     save_seq = QtGui.QKeySequence.Save 
     self.save_shortcut = QtGui.QShortcut(save_seq, self, self.save) 

     QtCore.QObject.connect(self, 
           QtCore.SIGNAL("modificationChanged(bool)"), 
           self.on_change) 

    def on_change(self, is_modified): 
     print "on_change" 
     window.setWindowModified(is_modified) 

    def save(self): 
     window.setWindowModified(False) 
# 


app = QtGui.QApplication(sys.argv) 
window = QtGui.QMainWindow() 
edit = MyTextEdit() 
window.setCentralWidget(edit) 
window.setWindowTitle("None [*]") 
window.show() 
app.exec_() 

没关系,想通了。问题是,在保存方法中,我应该一直调用self.document()。setModified(False)而不是window.setWindowModified(False)