weixin_39017744
weixin_39017744
2020-10-22 11:02
采纳率: 71.1%
浏览 159

python做gui程序时为何按钮未按自动执行指令?

运行如下代码后,直接弹窗,内容为:“.!entry.!entry2”,两个Entry再也无法输入内容,按钮点击也没有反应。

from tkinter import *
from tkinter.messagebox import showinfo
import hashlib

top = Tk()

def step1():
    l1 = Label(top, text="第一段话")
    l1.pack()
    da = Entry(top, bd=5)
    da.pack()

    l2 = Label(top, text="第二段话")
    l2.pack()
    path = Entry(top, bd=5)
    path.pack()
    showlabel=Button(top,text="合并",command=step2(da,path))
    showlabel.pack()
def step2(da,path):
    l3c=str(da)+str(path)
    # l3 = Label(top, text=l3c)
    # l3.pack(side=LEFT)
    showinfo(title="提示信息",message=l3c)
step1()

top.mainloop()
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • u011239973
    宁缺灬 2020-10-22 11:47
    已采纳

    按钮生成地方两种改法:
    ①仍旧传参,格式应该是
    Button(top,text="合并",command=lambda:step2(da,path))
    ②不传参,改成
    Button(top,text="合并",command=step2)
    且da和path设为全局变量即可

    还有,送参进去的不是输入框内的值,而是输入框对象,所以题主关注的应该是
    l3c=str(da.get())+str(path.get())

    运行无误请点采纳

    点赞 评论

相关推荐