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_()
War es hilfreich?

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
scroll top