从按下按钮更新tkinter中的标签

时间:2016-09-04 18:29:23

标签: python tkinter

我的问题是关于使用tkinter在python中进行GUI编程。我相信这是Python 3x。

我的问题:当我们执行程序来运行GUI时,按钮可以更新标签吗?更具体地说,有没有办法在按下按钮后更改标签显示的文字?我之前已经咨询了堆栈溢出并采用了StringVar()方法,但它似乎没有解决我的问题,实际上它完全省略了GUI中的文本!

以下是代码

from tkinter import *

root = Tk()
root.title('Copy Text GUI Program')

copiedtext = StringVar()
copiedtext.set("Text is displayed here")


def copytext():
    copiedtext.set(textentered.get())

# Write 'Enter Text Here'
entertextLabel = Label(root, text="Enter Text Here")
entertextLabel.grid(row=0, column=0)

# For the user to write text into the gui
textentered = Entry(root)
textentered.grid(row=0, column=1)

# The Copy Text Button
copytextButton = Button(root, text="Copy Text")
copytextButton.grid(row=1, columnspan=2)

# Display the copied text
displaytextLabel = Label(root, textvariable=copiedtext)
displaytextLabel.grid(row=2,columnspan=2)


copytextButton.configure(command=copytext())

root.mainloop()

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

您需要做的是将Button事件绑定到copytextButton对象,如下所示:

copytextButton.bind('<Button-1>', copytext)

这意味着当您左键单击按钮时,将调用回调函数 - copytext()。

函数本身需要稍作修改,因为回调会发送一个事件参数:

def copytext(event):
    copiedtext.set(textentered.get())

编辑: 不需要这一行:

copytextButton.configure(command=copytext())