选择功能不工作tkinter tex

2024-05-23 17:16:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个查找功能,除了在选择部分。它从找到的短语中选择到最后。如何让它只选择我想要的?你知道吗

def find_helper(text,win=None):
    if win: win.destroy()
    global box
    lengthvar=IntVar()
    where=box.search(text,1.0,count=lengthvar)
    box.tag_add(SEL, float(where), float(where)+lengthvar.get())
    return 'break'
def find(a=None):
    global box
    ask=Tk()
    what=Entry(ask)
    confirm=Button(ask,text='Ok',command=lambda:find_helper(what.get(),ask))
    what.pack()
    confirm.pack()
    ask.mainloop()

这是我的输出:

This is some text

(斜体部分是从“m”到最后一个“t”的选定部分)

……但我要找的其实是“我”。 我做错什么了?! (在windows 7 python 3.4上试用)


Tags: texthelperboxnonegetdeffindfloat
1条回答
网友
1楼 · 发布于 2024-05-23 17:16:13

你的问题是:

box.tag_add(SEL, float(where), float(where)+lengthvar.get())

具体来说,问题在于float的使用。你知道吗

文本索引不是浮点数,将索引转换为浮点数是不正确的,会产生意外的结果。索引必须是格式为“”的字符串线条.字符". 你知道吗

这是有区别的,因为字符串格式的"1.10"将转换为1.1作为浮点,这两个数字表示文本小部件中的不同位置。你知道吗

突出显示所发现内容的正确方法如下:

box.tag_add(SEL, where, "%s + %dc" % (where, lengthvar.get()))

第二个索引将最终看起来像"1.10 + 7c",tkinter将其interepret为“第1行,字符10,再加上7个字符”。你知道吗

相关问题 更多 >