Tkinter用背景颜色填充整条线

时间:2014-02-10 10:03:36

标签: python python-2.7 tkinter

我正在查看此example以填充带有背景颜色的文本小部件。但是我希望整个行显示背景颜色,而不仅仅是有文本的地方。所以从我的例子中我可以说:

text.tag_add("here", "1.0", "1.80")
text.tag_config("here", background="yellow", foreground="blue")

这是因为标准文本小部件宽度为80个字符。这不起作用:

text.tag_add("here", "1.0", 1.END)
text.tag_config("here", background="yellow", foreground="blue")

这两者都具有相同的不良影响。我试图实现的效果类似于iTunes列表(见图),其中每行以颜色交替。这是否可以通过使用文本元素实现?我知道它们是表格,交替的行是不同的颜色,但因为我有简单的字符串,在另一个因素上有所不同,并认为这将是一个显示差异的好方法。

Example of iTunes list

1 个答案:

答案 0 :(得分:2)

line_number + 1 . 0指定为endindex

<强>更新

line_number .0+1lines指定为endindex。 (参见The Tkinter Text Widget documentation,尤其是表达式部分)

最小例子:

try:
    from tkinter import *
except ImportError:
    from Tkinter import *

text = Text()
text.pack()
text.insert(END, '1st\n2nd\n3rd')
# text.tag_add("here", "2.0", "3.0") # <----------------------
text.tag_add("here", "2.0", "2.0+1lines") # <----------------------
text.tag_config("here", background="yellow", foreground="blue")
mainloop()

enter image description here