Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.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_User Interface_Widget_Tkinter - Fatal编程技术网

Python-自动添加小部件

Python-自动添加小部件,python,user-interface,widget,tkinter,Python,User Interface,Widget,Tkinter,因此,我目前正在尝试在GUI上创建一个按钮,让用户生成一个新的输入字段。 我不知道怎么做。我猜它需要一个lambda函数,但除此之外,我不知道 以下是迄今为止我掌握的基本代码: from tkinter import * class prac: def autoAddWidget(self,frame,x,y): self.entryField = Entry(frame,text="Entry Field") self.entryField.grid

因此,我目前正在尝试在GUI上创建一个按钮,让用户生成一个新的输入字段。 我不知道怎么做。我猜它需要一个lambda函数,但除此之外,我不知道

以下是迄今为止我掌握的基本代码:

from tkinter import *

class prac:

    def autoAddWidget(self,frame,x,y):
        self.entryField = Entry(frame,text="Entry Field")
        self.entryField.grid(row=x, column=y)
        #lambda function? 

    def __init__(self, master):
        frame = Frame(master, width=60, height=50)
        frame.pack()

        x=1
        self.addWidgetButton = Button(frame, text="Add new widget", command=self.autoAddWidget(frame, x,0))
        self.addWidgetButton.grid(row=0, column=0)
        x+=1


root = Tk()
app = prac(root)
root.mainloop()
谢谢你的帮助。
感谢您将方法self.autoAddWidget(frame,x,0)的结果传递给
命令
参数。您必须在那里传递对可调用对象的引用,该对象是事件发生时将调用的函数。请在下次提问前检查

好的,我修复了代码,现在它可以工作了:

from tkinter import *

class Prac:

    def autoAddWidget(self):
        self.entryField = Entry(self.frame,text="Entry Field")
        self.entryField.grid(row=self.x, column=0)
        self.x+=1

    def __init__(self, master):
        self.frame = Frame(master, width=60, height=50)
        self.frame.pack()

        self.x=1
        self.addWidgetButton = Button(self.frame, text="Add new widget", command=self.autoAddWidget)
        self.addWidgetButton.grid(row=0, column=0)


root = Tk()
app = Prac(root)
root.mainloop()

非常感谢你!我在这个问题上纠缠了很长时间。另外,感谢您不仅提供了解决方案,还提供了文档。