我的问题是关于使用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()
任何帮助将不胜感激!
答案 0 :(得分:0)
您需要做的是将Button事件绑定到copytextButton对象,如下所示:
copytextButton.bind('<Button-1>', copytext)
这意味着当您左键单击按钮时,将调用回调函数 - copytext()。
函数本身需要稍作修改,因为回调会发送一个事件参数:
def copytext(event):
copiedtext.set(textentered.get())
编辑: 不需要这一行:
copytextButton.configure(command=copytext())