weixin_39017744 2020-10-22 11:02 采纳率: 83.3%
浏览 265
已采纳

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条回答 默认 最新

  • 宁缺灬 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())

    运行无误请点采纳

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?