无法使用 python 2.7 tkinter 文本编辑器查找功能

Cannot get python 2.7 tkinter text editor find function to work

最近我一直在开发 GUI python 纯文本编辑器。代码调用此函数

def Find():
    win = Toplevel() 
    Label(win, text="Find:").pack()
    e1 = Entry(win)
    e1.pack()
    Button(win, text="Find Me!!!!", command=win.destroy).pack()
    targetfind = e1.get()
    print targetfind
    if targetfind:
        where = textPad.search(targetfind, INSERT, END)
        if where:
            print where
            pastit = where + ('+%dc' % len(targetfind))
            #self.text.tag_remove(SEL, '1.0', END)
            textPad.tag_add(SEL, where, pastit)
            textPad.mark_set(INSERT, pastit)
            textPad.see(INSERT)
            textPad.focus()

但是,我无法让它工作。我在互联网上搜索了任何可能帮助我实现查找功能的东西,但我没有成功找到一个有效的东西。非常感谢在实现查找功能方面的任何帮助。

我正在使用 python 2.7.7,Tkinter,我在 Windows 7 上 运行 这个。 `

它不起作用,因为您创建了 e1,然后在一纳秒后创建了 targetfind = e1.get()。用户没有反应能力在那纳秒内键入查询。所有以 targetfind = e1.get() 开头的代码都需要在一个函数中,该函数作为 "Find" 按钮的 command 执行。

def Find():
    def find_button_pressed():
        targetfind = e1.get()
        print targetfind
        if targetfind:
            where = textPad.search(targetfind, INSERT, END)
            if where:
                print where
                pastit = where + ('+%dc' % len(targetfind))
                #self.text.tag_remove(SEL, '1.0', END)
                textPad.tag_add(SEL, where, pastit)
                textPad.mark_set(INSERT, pastit)
                textPad.see(INSERT)
                textPad.focus()
        win.destroy()
    win = Toplevel() 
    Label(win, text="Find:").pack()
    e1 = Entry(win)
    e1.pack()
    Button(win, text="Find Me!!!!", command=find_button_pressed).pack()