Python 如何将Entry字段的值复制到Tkinter的Text字段中
我正在尝试用Tkinter制作一个简单的图形界面。当你按下一个按钮时,它会把输入框里的值添加到文本框的下一行。
from tkinter import *
#def onclick():
# pass
class MyApp:
def __init__(self):
window=Tk()
window.title('Multi Line Text Form')
frame = Frame(window)
frame.pack()
#self.fields ={}
l = Label(frame, text="Text to add below: ")
l.grid(row=0, column = 0)
#self.fields['name'] = Entry(frame)
name = Entry(frame)
#self.fields['name'].grid(row=0,column=1)
name.grid(row=0,column=1)
self.text = Text(frame, width=40, height=10)
self.text.grid(row=3,column=1)
self.text.insert(INSERT, "Hello.....")
self.text.insert(END, "Bye Bye.....")
msg = name.get()
updatebtn = Button(frame, text="Update Text Box", command=self.writeToLog(name))
updatebtn.grid(row=0, column=2)
window.mainloop()
def writeToLog(self, msg):
print(msg)
numlines = self.text.index('end - 1 line').split('.')[0]
#text['state'] = 'normal'
if numlines==4:
self.text.delete(1.0, 2.0)
if self.text.index('end-1c')!='1.0':
self.text.insert('end', '\n')
self.text.insert('end', msg)
#text['state'] = 'disabled'
if __name__=="__main__":
MyApp()
1 个回答
1
你的按钮需要设置一个函数的名字,这样点击按钮时就会调用这个函数。这个函数可以从输入框中获取值,然后把这个值放到文本框里:
def __init__(self):
...
updatebtn = Button(command=self.update_text)
...
self.name_entry = Entry(frame)
def update_text(self):
data = self.name_entry.get()
self.writeToLog(data)