私はオブジェクトのような文字列を操作するテキストエディタを作成しようとしています。理想的には、TkinterのText Widgetや他のGuiモジュールをサブクラス化して、文字列を使用する代わりにこのカスタムオブジェクトを置き換えることができます。Tkinter Text Widget(python)の中でStringの代わりにカスタムオブジェクトを使用することはできますか?
他の属性を保持したまま、レンダリングされたオブジェクトをテキストとして操作する方法ではなく、オブジェクト自体(基本的にすべての単語にメタデータをタグ付けする)を作成する方法を理解しています。
例:
テキストエディタは、「Hello World」を含むファイルをインポートします。このテキストを開くと、両方の単語は関連する属性でタグ付けされます。 (辞書としての下に表示されますが、理想的なオブジェクトなどHello.strContent、Hello.index、)
Hello={strContent: "Hello", index: 0, speaker: "Joe", paragraph: 3}
World={strContent: "World", index: 1, speaker: "Joe", paragraph: 3}
今、私は完全に私が操作可能なオブジェクトのようにこれらの文字列を作ることができるどのようにかかわらず困惑し、切断の対象としています、コピー、貼り付け、削除、並べ替えなど、テキストGUI内で行うことができます。プログラムで新しい単語を入力したり、新しいオブジェクトを作成したり、開いたファイルを変換したときに初期化されたオブジェクトを操作したりする必要はありません。
何か助けや指示があれば幸いです。ありがとう。
私はあなたがそのテキストを表示する必要があるときにいつでもclass myobj:
def __init__(self, text):
self.strContent=text
hello = [[myobj("Hello"), myObj("World")], [myobj("Paragraph"), myobj("2")]]
ような何かを行うことができること、その後、あなたがそう
printableStr = ""
for paragraph in hello:
for word in paragraph:
printableStr += word.strContent + " "
printableStr += "\n"
、その後printableStrがいいだろうと同じようにループを通るだろうと思う
文字列として 'strContent'を追加するだけでなく、辞書の各オブジェクトを参照することもできないのでしょうか?各単語は辞書キーです。ここで、そのキーに割り当てられた値は、上で概説した辞書です。 –
私は辞書を利用するのが好きですが、ソーステキストには同じ単語の重複が含まれています。たとえば、醜い解決策は、各単語の先頭にインデックスを付けたテキストをレンダリングします。
00And 01here 02is 03a 04sample 05text 06which 07is 08simple。
ここではGuiの仮説エディタで次のように編集しています。
– Acronomic
リストを作成できますか?読み込んだ順に各オブジェクトをリストに追加してから、リストを反復して各 'strContent'を' text'ウィジェットに追加します。 –