python - 用于升级标签文本的模块化 def
问题描述
我开始在 Python 中编程图形界面,方法是模块化def
按 a 按下的命令 (),Button
然后通过 a中的Label
a 更新文本。但是,程序总是以修改后的文本开始,就好像按钮已经被点击一样。
我是初学者,在这个论坛上没有发现任何类似的问题,我想知道必须做些什么才能解决这个问题。详情如下。def
__init__.py
main.py
from tkinter import *
from upgrader import upgrade
root = Tk()
root.title('Test')
poster = Label(root, text='Old Text')
poster.grid(row=0, column=0)
botao = Button(root, text='Change', command=upgrade(poster))
botao.grid(row=1, column=0)
root.mainloop()
__init__.py
来自升级者
def upgrade(t):
u = t['text'] = 'New Text'
return u
谢谢你。
解决方案
command=upgrade(poster)
upgrade(poster)
创建按钮时将立即执行botao
。
改为使用command=lambda: upgrade(poster)
。
推荐阅读
- java - 仅允许 GET、POST 和 HEAD HTTP 方法
- r - R将文本强制转换为数字
- java - spring jpa manyToMany 复合 @IdClass
- php - 在手风琴类中重复 div
- java - 如何在全屏活动中将 Edittext 推到键盘上方
- express - Express Validator 中的自定义响应
- react-native - 从 expo 32 升级到 expo 33 时收到 Promise Rejection 警告
- docker - Kubernetes容灾——重装master节点并导入etcd备份
- google-chrome - 是否有开发人员可以用来查看 PNaCl 是否正在运行的 PNaCl 测试模块?
- json - 如何解决警告:字符串字段中的值 4(类型 int)在 Ansible 中被转换为 u'4'(类型字符串)?