Python-自动添加小部件
因此,我目前正在尝试在GUI上创建一个按钮,让用户生成一个新的输入字段。 我不知道怎么做。我猜它需要一个lambda函数,但除此之外,我不知道 以下是迄今为止我掌握的基本代码: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
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()
非常感谢你!我在这个问题上纠缠了很长时间。另外,感谢您不仅提供了解决方案,还提供了文档。