3

ファイルの内容を表示するようにTkinterテキストボックスを設定しています。次のような行の例:

SUCCESS - Downloaded example.jpg
File was 13KB in size

私がやりたいのは、「SUCCESS」という単語を含む行のテキストの色を青に変更することです。この単語は1つのファイルで何百回も見つかる可能性があり、どこにあるかを予測する方法がないため、これを動的にする必要があることに注意してください。これは、ファイルの内容をテキストボックスに出力するために使用しているコードです。これは問題なく動作します。

log = open(logFile, 'r')
while 1:
    line = log.readline()
    if len(line) == 0:
        break
    else:
        self.txtLog.insert(Tkinter.END, line)
        self.txtLog.insert(Tkinter.END, os.linesep)
log.close()

以下の例の行のようにtag_addとtag_configを使用しようとしていますが、役に立ちません。

 `self.txtLog.tag_add("success", "1.0", "1.8")
  self.txtLog.tag_config("success", foreground="blue")`

`

4

1 に答える 1

3

タグを設定し、最後にテキストを追加するときにそのタグを指定する必要があります。これは機能するはずです(テストされていませんが):

self.txtLog.tag_config("success", foreground="blue", font="Arial 10 italic")
log = open(logFile, 'r')
while 1:
    line = log.readline()
    if len(line) == 0:
        break
    else:
        tags = ("success",) if line.startswith("SUCCESS") else None
        self.txtLog.insert(Tkinter.END, line+os.linesep, tags)
log.close()

また、あなたがtag_add以前tag_configに使用していることに気づきましたが、それが機能するためには反対のはずだと思います。

于 2012-06-12T11:15:36.053 に答える