weixin_39017744 2020-10-22 11:02 采纳率: 84.2%
浏览 266
已采纳

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())

    运行无误请点采纳

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

报告相同问题?

悬赏问题

  • ¥20 iOS绕地区网络检测
  • ¥15 python验证码滑块图像识别
  • ¥15 根据背景及设计要求撰写设计报告
  • ¥15 QT6颜色选择对话框显示不完整
  • ¥20 能提供一下思路或者代码吗
  • ¥15 用twincat控制!
  • ¥15 请问一下这个运行结果是怎么来的
  • ¥15 单通道放大电路的工作原理
  • ¥30 YOLO检测微调结果p为1
  • ¥15 DS18B20内部ADC模数转换器