找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 5743|回复: 2

[求助] TKinter多个按钮怎么分别输出各自的值

1

主题

1

帖子

1

积分

贫民

积分
1
qpdk777 发表于 2021-2-4 17:32:49 | 显示全部楼层 |阅读模式
1威望
欲实现:用for循环高效放置五个按钮,每个按钮对应一个字符串,点击该按钮输出对应的字符串

根据搜索引擎自学后得到以下程序,是无效的。

  1. import tkinter

  2. window = tkinter.Tk()

  3. name = ['女巫','猎人','守卫','预言家','狼人']

  4. def choose(ob):
  5.     print(ob)

  6. for i in name:
  7.     b1 = tkinter.Button(window,text=i,font=('Arial',20),width=40,command=lambda :choose(i))
  8.     b1.pack()

  9. window.mainloop()
复制代码

调试发现,for循环结束后,第十一行的 `i` 的值始终为 '狼人' 。
故无论点击什么按钮,控制台输出的都是 '狼人' 。
求助大佬们怎样实现以上功能。

回复

使用道具 举报

0

主题

1

帖子

1

积分

贫民

积分
1
潘盼盼 发表于 2021-2-7 10:42:58 | 显示全部楼层
import tkinter
window = tkinter.Tk()
name = ['女巫','猎人','守卫','预言家','狼人']
def choose(ob):
    print(ob)
index=0
for i in name:
    b1=tkinter.Button(window,text=i,font=('Arial',20),width=40,command=lambda index=index, i=i:choose(i))
    b1.pack()
    index=+1
window.mainloop()
回复

使用道具 举报

0

主题

6

帖子

6

积分

贫民

积分
6
kaikaidie 发表于 2021-6-15 11:27:35 | 显示全部楼层
import tkinter
import random

window = tkinter.Tk()

name = ['女巫', '猎人', '守卫', '预言家', '狼人']


def choose(ob):
    print(random.choice(ob))


b1 = tkinter.Button(window, text='anniu', font=('Arial', 20), width=40, command=lambda: choose(name))
b1.pack()

window.mainloop()

你试试这样改 看看print的值
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表