باي كيوت: المشكلة مع النجمة على تعديل في QPlainTextEdit

StackOverflow https://stackoverflow.com/questions/1640878

  •  08-07-2019
  •  | 
  •  

سؤال

وأواجه مشكلة مع 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 (خطأ)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top