Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么按钮点击不起作用?_Python_Tkinter - Fatal编程技术网

Python 为什么按钮点击不起作用?

Python 为什么按钮点击不起作用?,python,tkinter,Python,Tkinter,你可以用兰姆达。代码: from tkinter import * def plus(): print('Hello') root = Tk() Btn = Button(root, text="Show", command=plus()).pack() root.mainloop() 根据我下面的反Lambda联盟的要求,这里有一个非Lambda版本: from tkinter import * def plus(): print('Hello') root = Tk() B

你可以用兰姆达。代码:

from tkinter import *

def plus():
    print('Hello')

root = Tk()

Btn = Button(root, text="Show", command=plus()).pack()

root.mainloop()
根据我下面的反Lambda联盟的要求,这里有一个非Lambda版本:

from tkinter import *
def plus(): print('Hello')
root = Tk()
Btn = Button(root, text="Show", command=lambda:plus()).pack()
root.mainloop()

不需要lambda。只需删除Btn=Buttonroot、text=Show、command=plus.pack中的命令。这导致您在实际按下按钮之前调用该函数

您的按钮命令应如下所示:

from tkinter import *
def plus(): print('Hello')
root = Tk()
Btn = Button(root, text="Show", command=plus).pack()
root.mainloop()

它不必是lambda,在本例中不必,在许多其他情况下也不必。通常需要lambda将参数传递到回调中。为什么要使用lambda?这是不必要的,没有错。只需拆下你是对的,lambda是不必要的。添加了备用版本。还要注意,Btn并没有存储您认为它是什么。如果要存储对Btn的引用,请不要将其打包在与按钮构造函数调用相同的指令行中。只需在下一行中创建Btn.pack。原因可能是:如何从条目中获取文本。entry.get不存在work@user8921550我能看看代码吗。我猜不出来。@user8921550-请编辑您的答案,并添加您以前作为注释发布的代码。impo。。。。root=Tk def click:printE.get E=Entryroot E.pack btn=Buttonroot,text=click,command=click btn。pack@user8921550从tkinter导入*root=Tk def单击:printE.get E=Entryroot E.pack btn=Buttonroot,text=click,command=click btn.pack对我来说非常适合。你刚刚错过了Tk上的节目。
Btn = Button(root, text="Show", command=plus).pack()