基本上,我想要一个按钮,当按下按钮时,会向我的窗口添加内容。这是一些最低限度的代码:
from Tkinter import *
def create_line (N):
""" """
Label (root, text= "Color ").grid(row=N, column=0, padx=3)
OptionMenu (root, v, *optionList).grid(row=N, column=1, padx=3)
Button (root, text="+", command=add_line(N)).grid(row=N, column=2, padx=3)
def add_line (M):
M = M +1
Label (root, text= "Color ").grid(row=M, column=0, padx=3)
OptionMenu (root, v, *optionList).grid(row=M, column=1, padx=3).grid(row=M,
column=2, padx=3)
return 1
root = Tk()
optionList = ("red", "green", "blue")
current_row = 0
v = StringVar()
v.set(optionList[0])
create_line(current_row)
mainloop()
如果你注释掉add_line函数中的代码(返回行除外)并运行代码,你会看到一个标签,一个选项菜单和一个按钮。我想要'+'按钮创建具有相同小部件的另一行。这个最小代码不是我真正的应用程序,但这是我不能做的核心。
我知道可以做到,因为我有一个我下载的应用程序,当我按下按钮时动态更改菜单选项,但这种技术对我来说似乎不起作用。
感谢。
答案 0 :(得分:1)
我马上看到的一个问题是:
Button (root, text="+", command=add_line(N)).grid(row=N, column=2, padx=3)
应该是:
Button (root, text="+", command=lambda:add_line(N)).grid(row=N, column=2, padx=3)
在编写时,您在创建Button时调用函数add_line
,而不是在按下它时。