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)