首页 > 解决方案 > 用于升级标签文本的模块化 def

问题描述

我开始在 Python 中编程图形界面,方法是模块化def按 a 按下的命令 (),Button然后通过 a中的Labela 更新文本。但是,程序总是以修改后的文本开始,就好像按钮已经被点击一样。 我是初学者,在这个论坛上没有发现任何类似的问题,我想知道必须做些什么才能解决这个问题。详情如下。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

谢谢你。

标签: pythonpython-3.xtkintermodule

解决方案


command=upgrade(poster)upgrade(poster)创建按钮时将立即执行botao

改为使用command=lambda: upgrade(poster)


推荐阅读