2

ユーザーの bold/italic/font/etc タグを GtkTextView に保存しようとしています。GtkTextBuffer.get_text() を使用してもタグは返されません。

これについて私が見つけた最高のドキュメントは次のとおりです

しかし、関数の引数がわかりません。これらを使用してタグ付きのテキストビューを保存/ロードする方法の例があると、非常に便利です。

編集:私が達成しようとしていることを明確にしたいと思います。基本的に、テキストビューのテキスト+タグを保存/ロードしたいです。それ以上複雑なことをしたいという気持ちはありません。私はファイル形式としてピクルを使用しているので、保存方法や形式についてここで助けを求める必要はありません。ユーザーが画面に表示されているものを何も失わないように、データをプル/プッシュする方法が必要です。ありがとうございました。

4

2 に答える 2

3

テキストを別のテキスト バッファにコピーしたいだけでタグを保存する必要がある場合は、gtk.TextBuffer.insert_range().

タグ付きのテキストを他のプログラムで読み取り可能な別の形式に保存する必要がある場合は、RTF との間で GTK テキスト バッファー シリアライザーを使用してライブラリを作成したことがあります。ただし、Python バインディングはありません。しかし、いずれにせよ、コードはシリアライザー機能の使用方法の良い例です。リンク:オスカート

于 2009-12-14T11:06:52.143 に答える
1

私は GtkTextBuffer のシリアライゼーションを扱っていません。リンクしたドキュメントを読んで、呼び出してデフォルトのシリアライザーを試すことをお勧めします

textbuffer.register_serialize_tagset()

これにより、GTK+ の組み込み独自のシリアライザーが提供されます。ここでプロプライエタリであることは、よく知られている形式にシリアル化されないことを意味します。しかし、テキスト バッファの内容を保存して再度読み込む機能だけが必要な場合は、これで問題ありません。

もちろん、GTK+ がどのように機能するかを本当に理解したい場合は、ソース コードを GTK+ 内で利用できます。ただし、形式がそのまま維持されるという GTK+ による保証はおそらくないため、スタンドアロンのデシリアライザーなどを実装しようとすることはお勧めしません。

于 2009-12-14T07:34:31.820 に答える