【发布时间】:2020-07-31 00:01:44
【问题描述】:
我有一个循环,它在包含列表值的标签下创建一个按钮:
def feed_page():
feed = ["Cooking", "Sports", "Tv", "Fashion"] #let's say those are the list's values
l = len(feed) - 1
x = 0
while l >=0:
Label(app, text=feed[l]).grid(row=x, column=1)
b = Button(app, text=feed[l])
b.configure(command=lambda: print_button_pressed_text(b.cget('text')))
b.grid(row=x+1, column=1)
x += 2
*每次调用函数feed_page()时,列表Feed的长度和值都会发生变化。
我希望每次按下某个按钮时,print_button_pressed_text 函数都会打印出按下的特定按钮的文本。 (每个按钮都有自己的唯一编号)
def print_button_pressed_text(num):
print num
但是,无论我按什么按钮,该函数都会打印值 'Fashion'(列表中的最后一个值..)
你知道问题是什么吗?我该如何解决?
【问题讨论】:
-
你能告诉我你用来改变按钮文本的功能吗?我的意思是函数
print_button_pressed_text -
我不能说它会解决你的问题,因为我还没有看到其他功能......到目前为止我发现了一个简单的问题......使用
lambda解决它。 .. 像这样:b.configure(command=lambda: print_button_pressed_text(b.cget('text'))) -
@DaniyalAhmad 这个函数不会改变按钮的文本,它只是打印她给出的文本:
def print_button_pressed_text(num): print num -
@DaniyalAhmad 我使用了 Lambda,这就是它打印出来的结果。我忘了在我的问题中添加它。
标签: python button tkinter command