dragov 发表于 前天 18:06

Tkinter 循环语句



from tkinter import *
root=Tk()
a=
b=["北京","天津","上海","重庆"]
for i in range(len(a)) :
      b=Button(root,
         text=f"{a} : {b}")
      b.pack()
mainloop()

不知道如何修改呀 ?

FishC 发表于 前天 18:08

根据你的代码,问题在于变量 `a` 和 `b` 未定义,且循环逻辑需要调整。以下是两种常见场景的修改方案:

### 场景1:遍历单个列表(按钮显示索引+值)

from tkinter import *

root = Tk()
# 定义要遍历的列表
my_list = ["苹果", "香蕉", "橙子"]# 替换成你的实际数据

for i in range(len(my_list)):
    # 创建按钮,显示索引和值
    btn = Button(root, text=f"索引 {i}: {my_list}")
    btn.pack()

root.mainloop()


### 场景2:遍历两个列表(按钮显示对应元素组合)

from tkinter import *

root = Tk()
# 定义两个列表(长度需相同)
list_a = ["红色", "绿色", "蓝色"]# 替换成你的数据
list_b = ["苹果", "西瓜", "天空"]# 替换成你的数据

for i in range(len(list_a)):
    # 创建按钮,显示两个列表的对应元素
    btn = Button(root, text=f"{list_a} : {list_b}")
    btn.pack()

root.mainloop()


### 关键修改说明:
1. 定义有效列表:必须给 a 和 b 赋值(如示例中的 my_list 或 list_a/list_b)
2. 避免变量覆盖:循环内用新变量名 btn 代替 b,防止覆盖原始数据
3. 使用索引取值:通过 a 获取列表元素而非整个列表

### 效果示意图:

[*]单个列表:按钮显示 索引0: 苹果, 索引1: 香蕉...
[*]双列表:按钮显示 红色 : 苹果, 绿色 : 西瓜...


根据你的实际需求选择一种方案,替换示例中的列表数据即可运行!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

player-none 发表于 前天 18:42

from tkinter import *
root=Tk()
a=
b=["北京","天津","上海","重庆"]
for i in range(len(a)) :
      b=Button(root,
         text=f"{a} : {b}")
      b.pack()
root.mainloop() # 这里修改了

求最佳

ydwb 发表于 前天 22:04

from tkinter import *
root=Tk()
a=
b=["北京","天津","上海","重庆"]
for i in range(len(a)) :
      c=Button(root,
         text=f"{a} : {b}")
      c.pack()
mainloop()

dragov 发表于 昨天 08:53

ydwb 发表于 2025-6-1 22:04
from tkinter import *
root=Tk()
a=




{:7_130:} 嗨,变量设置了两个相同的 b {:7_117:}

player-none 发表于 昨天 10:25

dragov 发表于 2025-6-2 08:53
嗨,变量设置了两个相同的 b

{:10_282:}
页: [1]
查看完整版本: Tkinter 循环语句