Моя задача:
сделать так, что бы в один момент всего 1 кнопка была заблокирована
то есть нажимаю кнопку 1 - она блокируется, нажимаю 2 - она блокируется, 1 разблокируется
import tkinter
from tkinter import *
from tkinter import ttk
from urllib import request
import json
from tkinter import messagebox
root = Tk()
root.geometry('900x600+1000+300')
f_frame = LabelFrame(root, text="У меня есть")
f_frame.place(y=20, x=20)
r_frame = LabelFrame(root, text="Хочу приобрести")
r_frame.place(y=20, x=550)
buttons = {
"master": "f_frame",
"fg": "#fff",
"padx": 20,
"pady": 12,
"width": 7,
"height": 2,
}
btn_ass ={ "RUB": "active",
"USD": "active",
"EUR": "active",}
class MyButtons():
def __init__(self, nomination, state):
self.fg = buttons['fg']
self.text = nomination
self.padx = buttons['padx']
self.pady = buttons["pady"]
self.width = buttons["width"]
self.height = buttons["height"]
self.state = state
self.right_btns = Button(f_frame, text=self.text, padx=self.padx, pady=self.pady, width=self.width, #Правый массив кнопок
height=self.height, command=self.change_state_right, state=self.state) # Левый массив кнопок
self.left_btns = Button(r_frame, text=self.text, padx=self.padx, pady=self.pady, width=self.width,
height=self.height, command=self.change_state_left, state=self.state)
self.right_btns.pack(side=LEFT)
self.left_btns.pack(side=RIGHT)
def change_state_right(self):
if self.right_btns['state'] == tkinter.NORMAL:
self.right_btns['state'] = tkinter.DISABLED
def change_state_left(self):
if self.left_btns['state'] == tkinter.NORMAL:
self.left_btns['state'] = tkinter.DISABLED
for nomination, state in btn_ass.items():
items = [] # Пустой список
x = MyButtons(nomination, state)
items.insert(0,x) # добавляю в список
print(items)
root.mainloop()
мне нужно менять атрибут state виджета Button
при использовании print(MyButton(nomination, state) получаю:
[<__main__.MyButtons object at 0x000001EB50412B60>]
[<__main__.MyButtons object at 0x000001EB50412BF0>]
[<__main__.MyButtons object at 0x000001EB50413040>]
как тут обратиться к свойству state виджета Button?