PyQt: Ärger mit Stern auf Änderung in QPlainTextEdit
Frage
ich habe ein Problem mit einem QPlainTextEdit. Ich mag, dass die Sternchen erscheinen in der Titelleiste „Inhalt geändert wurde“, wenn der Inhalt geändert wurde.
Im Beispiel unten, ein paar Buchstaben eingeben. Der Stern erscheint, wie es sollte. Drücken Sie Strg + S, verschwindet der Stern wie es sollte. Aber dann, wenn Sie ein paar Buchstaben eingeben ... warum das Sternchen wieder nicht angezeigt wird?
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_()
Lösung
Es macht nichts, es herausgefunden. Das Problem war, dass bei dem Verfahren speichere ich sollte self.document worden bin () aufrufen. SetModified (False) statt window.setWindowModified (False)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow