我想用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()
答案 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)