python tkinter entry长字符串靠右显示_如何突出显示tkinter文本widg中的文本

它是用于这些目的的正确小部件。基本概念是,将属性分配给标记,并将标记应用于小部件中的文本范围。您可以使用文本小部件的search命令查找与模式匹配的字符串,这将返回足够的信息,并将标记应用于匹配的范围。

有关如何将标记应用于文本的示例,请参见我对问题Advanced Tkinter text box?的回答。这并不完全是你想做的,但它显示了基本概念。

下面是一个示例,说明如何扩展文本类以包含用于突出显示与模式匹配的文本的方法。class CustomText(tk.Text):

'''A text widget with a new method, highlight_pattern()

example:

text = CustomText()

text.tag_configure("red", foreground="#ff0000")

text.highlight_pattern("this should be red", "red")

The highlight_pattern method is a simplified python

version of the tcl code at http://wiki.tcl.tk/3246

'''

def __init__(self, *args, **kwargs):

tk.Text.__init__(self, *args, **kwargs)

def highlight_pattern(self, pattern, tag, start="1.0", end="end",

regexp=False):

'''Apply the given tag to all text that matches the given pattern

If 'regexp' is set to True, pattern will be treated as a regular

expression according to Tcl's regular expression syntax.

'''

start = self.index(start)

end = self.index(end)

self.mark_set("matchStart", start)

self.mark_set("matchEnd", start)

self.mark_set("searchLimit", end)

count = tk.IntVar()

while True:

index = self.search(pattern, "matchEnd","searchLimit",

count=count, regexp=regexp)

if index == "": break

if count.get() == 0: break # degenerate pattern which matches zero-length strings

self.mark_set("matchStart", index)

self.mark_set("matchEnd", "%s+%sc" % (index, count.get()))

self.tag_add(tag, "matchStart", "matchEnd")

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值