首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >“用户名复制!”不显示text.configure(text=“用户名复制!”)在text.after之前(3000,.)

“用户名复制!”不显示text.configure(text=“用户名复制!”)在text.after之前(3000,.)
EN

Stack Overflow用户
提问于 2018-11-14 02:31:22
回答 1查看 31关注 0票数 0

我想要“复制用户名!”若要仅显示3秒,则字符串将更改为“欢迎返回”。

但所发生的是,当我点击按钮,3秒后,“欢迎”将改为“欢迎回来”,立即,“用户名复制!”没有出现在中间。

代码语言:javascript
运行
复制
from tkinter import *
from urllib import parse
from tkinter import Tk

window = Tk()
window.title("CopyText")
window.geometry('295x70+600+210')

myFont = ('Verdana',11)

#USERNAME ===================

lbl = Label(window, text="Username:")
lbl.grid(column=0, row=0)
string1 = StringVar(value='myusername')

txt = Entry(window, textvariable=string1, font=myFont, width=18)
txt.grid(column=1, row=0)


def clicked():
    copy = txt.get()
    r = Tk()
    r.withdraw()
    r.clipboard_clear()
    r.clipboard_append(copy)

    # after button was clicked, change "Welcome" to "Username copied!" 
    welcomeMessage.configure(text="Username copied!")          

    # then after 3 seconds, change the "Username copied!" to "Welcome back"        
    welcomeMessage.after(3000, welcomeMessage.configure(text="Welcome back"))  
    r.update()

btn = Button(window, text="copy", command=clicked, height=2, width=5)
btn.grid(column=2, row=0)

welcomeMessage = Label(window, text="Welcome")
welcomeMessage.grid(column=1, row=7)


window.mainloop()

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-14 03:27:24

考虑到这一行:

代码语言:javascript
运行
复制
welcomeMessage.after(3000, welcomeMessage.configure(text="Welcome back")) 

它在功能上与以下内容相同:

代码语言:javascript
运行
复制
result = welcomeMessage.configure(text="Welcome back")
welcomeMessage.after(3000, result)

由于resultNone,3秒后什么也不会发生。

可以说,最好的解决方案是创建一个适当的函数并从after方法中调用它:

代码语言:javascript
运行
复制
def show_welcome():
    welcomeMessage.configure(text="Welcome back")
welcomeMessage.after(3000, show_welcome) 

您也可以通过lambdafunctools.partial轻松地解决这个问题。下面是您如何使用lambda来做这件事

代码语言:javascript
运行
复制
welcomeMessage.after(3000, lambda: welcomeMessage.configure(text="Welcome back"))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53292361

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档