dragov 发表于 2025-9-16 20:05:40

Tkinter 按钮设置焦点



欲将第3个按钮设置为焦点!

from tkinter import *
root=Tk()
m=[{"name":"A","hue":"mediumturquoise"},
   {"name":"B","hue":"orchid"},
   {"name":"C","hue":"burlywood"},
   {"name":"D","hue":"goldenrod"}]
for i in range(len(m)) :
   n=Button(root,
            text=m["name"])
   n.pack()
m.focus_set()      
mainloop()

FishC 发表于 2025-9-16 20:07:06

亲爱的鱼油,

您的问题是关于在 Tkinter 中将第三个按钮设置为焦点。您的代码中有几个需要修正的地方:m 应该是一个列表来存储按钮文本,并且在循环中需要正确引用每个按钮的文本。此外,为了设置焦点,您需要存储按钮对象并针对第三个按钮调用 focus_set() 方法。

以下是修正后的代码示例。我假设 m 是一个包含三个按钮文本的列表(例如 ["Button1", "Button2", "Button3"]),但您可以根据实际需求调整。


from tkinter import *

root = Tk()
m = ["Button1", "Button2", "Button3"]# 定义按钮文本列表
buttons = []# 创建一个空列表来存储按钮对象

for i in range(len(m)):
    n = Button(root, text=m)# 使用 m 来设置每个按钮的文本
    n.pack()
    buttons.append(n)# 将按钮对象添加到列表中

# 设置第三个按钮的焦点(索引从0开始,所以索引2对应第三个按钮)
buttons.focus_set()

mainloop()


关键点:
- 使用列表 buttons 来存储按钮对象,以便后续引用。
- 调用 buttons.focus_set() 来将焦点设置到第三个按钮。

如果您的按钮数量或文本不同,请相应修改列表 m 和索引值。希望这能解决您的问题!

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

ydwb 发表于 2025-9-17 11:28:29

from tkinter import *

root = Tk()
m = [
    {"name": "A", "hue": "mediumturquoise"},
    {"name": "B", "hue": "orchid"},
    {"name": "C", "hue": "burlywood"},
    {"name": "D", "hue": "goldenrod"}
]

# 创建一个列表来存储按钮实例
buttons = []

for i in range(len(m)):
    n = Button(root, text=m["name"])
    n.pack()
    buttons.append(n)# 将按钮添加到列表中

# 设置第三个按钮(索引为2)为焦点
buttons.focus_set()

mainloop()
页: [1]
查看完整版本: Tkinter 按钮设置焦点