باي كيوت: المشكلة مع النجمة على تعديل في QPlainTextEdit
سؤال
وأواجه مشكلة مع 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 (خطأ) بدلا من window.setWindowModified (خطأ)
لا تنتمي إلى StackOverflow