我想创建带有列表名称的按钮。当您单击一个按钮时,其浮雕将从凹槽变为凹陷。有一种情况,只允许按下一个按钮。因此,当您单击另一个已下沉的按钮时,下沉的那个必须回到凹槽。 How it looks like
我能够将自己的想法付诸实践,并对整个过程进行编码。但是,我想知道是否可能有更好的方法来实现它。你有什么意见?这是我的代码:
import tkinter as tk
from functools import partial
class ButtonSunken:
def __init__(self):
self.tags = ('A','B','C','D','E','F')
self.buttons = []
self.win = tk.Tk()
self.create_buttons()
self.win.mainloop()
def create_buttons(self):
for j,i in enumerate(self.tags):
self.buttons.append(tk.Button(self.win, text = i))
self.buttons[-1].grid(column=0, row=j)
ho_general = partial(self.button_pressed, self.buttons[-1])
self.buttons[-1].configure(command = ho_general)
def button_pressed(self, button):
try: # first time active_button does not exist yet
self.active_button.configure(relief = 'groove')
except:
pass
button.configure(relief = 'sunken')
self.active_button = button
t_object = ButtonSunken()
非常感谢您的帮助!
答案 0 :(得分:0)
您的方法非常好,只是无需使用任何特殊函数就可以完成。在我的代码中,我只存储当前活动按钮的索引,并在按下下一个按钮时将其释放度设置为groove
,而下一个按钮被按下时。看一下代码。
sunken