2017-02-02 17 views
0

したがって、tkinterテキストエディタ!
エディタには、現在選択されている書式にタグを使用して、書式設定されたテキストを変更する必要があるテキストスタイルが必要です。しかし、問題は、書式設定が変更されたときにタグ名を変更する必要があることです。それ以外の場合は、タグがテキスト全体に適用されます。 (これは私がかなりの時間のために識別するために苦しんでいた問題だった)
これを避けるために、あなたがタグ(のようなbold, both, calibriなど)の多くが必要になり、そのコードは、このtkinter - 複数のタグを管理する

if style == 'bold': 
    tag_add('bold', 'insert -1c', 'insert') 
    tag_configure('bold', font=('Calibri', 12, 'bold')) 

if stlye == 'italic': 
    etc etc 

ようになります。これはひどいコードであり、異なるフォント/サイズを不可能にします。
このように複数のタグを整理するための正しい方法、あなたの助け

UPDATE

tagname = '{}-{}-{}-{}'.format(font, fontsize, weight, slant) textbox.tag_add(tagname, 'insert -1c', 'insert') textbox.tag_configure(tagname, font=(font, fontsize, weight, slant)) 
ブライアン

からの助けなしに少量で解決

ため

tag.add(currentstyle, 'insert -1c', 'insert') 
tag.config(currentstyle, font=(currentfont, currentsize, currentweight, currentslant)) 

おかげのようなものがあります

すべてのタグには一意の名前が付いています

答えて

1

はい、使用するフォントごとに一意のタグを作成する必要があります。実際には、これはあまり重大ではない。なぜなら、ほとんどの文書では3〜4種類のバリエーションが使われているだけかもしれないし、おそらく最悪の場合もあるかもしれないからだ。唯一の難しい点は、太字と斜体の両方が必要な場合は、太字のタグ、斜体のタグ、および太字のイタリック体のタグを作成する必要があることです。

これはひどいコードであり、さまざまなフォント/サイズが不可能になります。

少し難しいです。あなたのコードは実際にあなたがそれをやる方法にかなり近いです。

ユーザーが文字のスタイルを変更するときは、現在のスタイルと新しい属性を組み合わせて、スタイル名用の正規形を作成する必要があります。たとえば、文字が現在12ポイントの太字で、斜体14ポイントに変更されている場合、新しいタグは「斜体-12」になります。彼らが大胆にしたいのであれば、それは "太字イタリック-12"かもしれません。その名前のタグがあるかどうかを確認し、そうでない場合は作成し、以前のフォントタグを削除して新しいフォントタグを追加する必要があります。

これは実際にはフォントの問題です。色や罫線などの他の属性については、単に別のタグをすべて別々に使うこともできます。つまり、「背景 - 青」と「前景 - 赤」のタグを作成する場合は、これらのタグをテキストに個別に適用できます。

私はここにこれに似た何かをする例を提供します!https://stackoverflow.com/a/3736494/7432

+0

は、おかげで – EriktheRed

+0

@EriktheRed、あなたは時々、ボックスの外側を考える必要がありゲス:Tkinterには、より多くの家具店よりも材木店のようなものですあなたは。 Tkinterとのすばらしいインターフェースを作ることができますが、時には自分で作業する必要があります。 –

関連する問題