現在、QTextEdit を使用して WYSIWYG テキスト エディターに取り組んでいます。新しいファイルが読み込まれるたびに、QTextDocument をリセットして再フォーマットし、ファイル (空白) を読み込んで.setHtml()
から、その内容をエディターに渡します。私は、新しく作成された各ファイルが、単一の関数で定義された同じデフォルト スタイルを常に持つことを意図していました。
代わりに、空のファイルに入力された新しいテキストは、私が提供したフォーマットにデフォルト設定されるのではなく、以前にロードされた QTextDocument からフォーマットを受け取ります。シンタックス ハイライトされたコードを 1 つのドキュメントにコピー アンド ペーストしてから、新しいドキュメントを作成して入力すると、最も明白です。HTML 構造に存在しないにもかかわらず、フォント、フォントの色、および背景色はすべて新しいドキュメントに引き継がれます。
これは、ファイルが QTextEdit にロードされる前に現在実行している関数です。
fontDefault = QFont()
fontDefault.setFamily("Yantramanav")
fontDefault.setPointSize(11)
fontDefault.setWeight(QFont.Normal)
# editor is a QTextEdit.
def reset_document(editor, defaultFont=fontDefault):
newDocument = QTextDocument()
newDocument.setDocumentMargin(12)
newDocument.setDefaultFont(defaultFont)
editor.setDocument(newDocument)
editor.setCurrentFont(defaultFont)
# Stored on the QTextEdit yet is reset when replacing the QTextDocument.
editor.setTabStopWidth(33)
書式を保存するドキュメントが置き換えられると、古い書式が失われると想定していました。これが当てはまらないのはなぜですか? また、既定のスタイルのみが適用されるようにするにはどうすればよいですか?