让我们考虑以下代码:
from tkinter import Tk, Text
root = Tk()
text = Text(root)
text.insert("end", "abcdefgh\nабвгґдеє\n一伊依医咿噫欹泆")
print(text.index("1.4+1l"), text.index("1.4+2l"))
print(text.index("3.4-1l"), text.index("3.4-2l"))
有些人(例如我)会希望它打印2.4 3.4
和2.4 1.4
,因为+1l
和-1l
应该保留列,如果该行很长足够。而是打印2.2 3.2
和2.6 1.8
。看起来它取决于编码每个字符所需的字节数。
应该这样吗?它在某处记录了吗?我应该使用像
这样的东西line, column = old_index.split(".")
new_index = text.index(f"{line+1}.{column}")
如果我关心要保留的列,那么而不是+1l
答案 0 :(得分:1)
问题似乎与Tk相关,而不是与Python相关:
package require Tk 8.6
pack [text .t]
.t insert end "abcdefgh\nабвгґдеє\n一伊依医咿噫欹泆"
puts "[.t index 1.4+1l] [.t index 1.4+2l]"
puts "[.t index 3.4-1l] [.t index 3.4-2l]"
exit 0
输出:
2.2 3.2
2.6 1.8
所以我问second question。