如何在文本框Tkinter Python中检查输入?

如何在文本框Tkinter Python中检查输入?,python,tkinter,Python,Tkinter,我是Python程序员,遇到了一个问题:“如何在tkinter Python的文本框中检查输入”。问题是它在编写代码时没有给出输出 def start(event): a = main.get(1.0,END) if a == 'ver': print('.....') main = Text(root) main.pack() root.bind('<Return>',start) def启动(事件): a=main.get(1.0,结束) 如果

我是Python程序员,遇到了一个问题:“如何在tkinter Python的文本框中检查输入”。问题是它在编写代码时没有给出输出

def start(event):
    a = main.get(1.0,END)
    if a == 'ver':
        print('.....')

main = Text(root)
main.pack()
root.bind('<Return>',start)
def启动(事件):
a=main.get(1.0,结束)
如果a=='ver':
打印(“……”)
main=文本(根)
main.pack()
root.bind(“”,开始)

您应该编写以下内容

def start(event):
    t = var.get()
    if t == 'something':
       pass

var = StringVar()
e = Entry(master, textvariable=var)
e.pack()
e.bind(bind('<Return>',start)
def启动(事件):
t=var.get()
如果t==‘某物’:
通过
var=StringVar()
e=条目(主,文本变量=var)
e、 包()
e、 绑定(绑定(“”,开始)

我们可以通过
get()
方法:

from tkinter import *
a=Tk()
def check():
    print(x.get('1.0',END)[:-1])
x=Text(a)
b=Button(a,text='Check',command=check)
x.pack()
b.pack()
a.mainloop()

文本小部件保证始终有一个尾随的换行符。当您执行
get(1.0,END)
时,即使用户没有输入换行符,您也会得到尾随的换行符

如果您想准确地获取用户输入的内容,请使用
get(“1.0”,“end-1c”)
。这将获取到最后的所有字符,减去一个字符


注意:文本索引是line.character格式的字符串。您的代码使用的浮点值
1.0
,这是不正确的。它在某些情况下可以正常工作,但在所有情况下都不起作用。您应该始终使用字符串而不是浮点数作为文本索引。

文本小部件不支持
textvariable
选项。如果它们是在重新使用条目小部件时,您不需要
StringVar
get()
方法在小部件本身上运行良好。欢迎使用堆栈溢出。带有代码示例的答案很有用,但请通过包含上下文或解释来帮助未来的读者。有关编写好答案的详细信息:。
from tkinter import *
from threading import Thread

root = Tk()

def check():
    while True :
        a = main.get(1.0,END)[:-1]
        if a == 'ver':
            print('.....')

main = Text(root)
main.pack()

Thread(target=check).start()

root.mainloop()