![](/img/trans.png)
[英]How do you make a program that counts characters in a text widget in Tkinter?
[英]How do you make the tkinter text widget recognise lines in the index?
我正在努力在 Tkinter 的文本小部件中突出顯示文本綠色的選定部分。
據我了解,在 Tkinter 上,第二行的索引,文本的第四個字符將是 2.04。 出於某種原因,它無法識別新行,並且十進制數不斷增加到數百個,所以一旦文本的總字符超過 99,我就會努力突出顯示單詞。當它這樣做時,它會在所選單詞之后突出顯示大量文本在綠色。
我已將文本小部件的最大寬度設置為 99 個字符以使索引創建行,但它仍然沒有做任何事情。
為澄清起見,我試圖用此代碼以綠色突出顯示“計算”一詞。
from tkinter import *
window = Tk()
text_window = Text(window, height=10, width=99, wrap=WORD)
text_window.insert(INSERT, sample_text)
text_window.configure(state=DISABLED)
text_window.pack()
countVar = StringVar()
pos = text_window.search("calculates", "1.0", stopindex="end", count=countVar)
end_num = float(countVar.get()) / 100
position = float(pos)
print(position)
print(end_num)
end_point = position + end_num
text_window.tag_configure("search", background="green")
text_window.tag_add("search", pos, end_point)
window.mainloop()
"2.04"
無效。 它會起作用,但像"2.08"
這樣的東西不會,因為08
是一個無效的八進制數。 文本小部件索引必須是有效 integer、句點和另一個有效 integer 形式的字符串。
文本小部件索引還支持修飾符,因此您可以輕松添加或減去字符。 在您的情況下,它看起來像這樣:
end_point = f"{pos}+{countVar.get()}chars"
或者
end_point = f"{pos}+{countVar.get()}c"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.