Python 如何将Entry字段的值复制到Tkinter的Text字段中

-2 投票
1 回答
2154 浏览
提问于 2025-04-27 13:21

我正在尝试用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)

撰写回答