通过按“ ENTER”将值从Tkinter条目传递到变量

时间:2019-02-23 21:26:05

标签: python tkinter

我想用Tkinter做我自己的终端,以完全控制终端中发生的一切。 我的问题是我不知道如何听用户按ENTER键向该程序发送命令,以便该程序可以执行输入的命令。我已经搜索了互联网,但找不到解决方案。 因此,我想要的是通过输入框将字符串值发送给变量,以便程序只需按一下ENTER键就可以处理该变量。 有一个简单的解决方案吗?到目前为止,这是我的代码:

#Needed modules in the future
import time, os, sys, logging
from pynput import *
from tkinter import *

#The variable that stores the input
userin = ''

#Creating window
root = Tk()
root.geometry('1080x660')
root.title('Terminal')
root.configure(bg="black")

#Making my entrybox
Entry(root, textvariable=userin, fg='lime', bg='black').grid()

#The regular mainloop :)
root.mainloop()

1 个答案:

答案 0 :(得分:1)

您遗漏了三件事:保存的对Entry的引用(或对其的StringVar,但在这种情况下不是必需的),对 Enter的绑定键,以及一个函数,您可以对该小部件的内容进行任何操作。

更改此行,使之成为Entry小部件,但无法引用它:

Entry(root, textvariable=userin, fg='lime', bg='black').grid()

对此:

e = Entry(root, textvariable=userin, fg='lime', bg='black')
e.grid()
def process(event=None):
    content = e.get() # get the contents of the entry widget
    print(content) # for example
# bind enter key (called return in tkinter) to the entry widget and
# connect it to the process function
e.bind('<Return>', process)