Как оформить передачу функций, нескольких создаваемых кнопок (число неизвестно) не через список и анонимные функции
Пытаюсь запихнуть все кнопки в словарь, так как не вижу другого варианта назначать разные команды этим кнопкам. При привязке через анонимную функцию, у всех кнопок сохраняется последняя команда, которая была объявлена через one
def set_(self, whatset):
global buttons
self.textEdit.setText(self.notes_[whatset])
self.current = whatset
def reload_(self): # Перезагрузка области просмотра заметок
global buttons, spliter
file = open("Some.txt", "r")
arg = file.read().split("///")[1]
notes = os.listdir("/".join(__file__.split("\\")[:-1])+"/resourses")
self.notes_ = {} #Словарь расшифрованных заметок, ключи - названия заметок
for name in notes:
file1 = open("/".join(__file__.split("\\")[:-1])+"/resourses/"+name, 'r')
textIn = sm.decrypt(file1.read(), arg)
file1.close()
name = sm.decrypt(name, arg)
self.notes_[name] = textIn
print(self.notes_)
for one in self.notes_: # Изменение размера кнопок в зависимости от объёма содержимого
buttons[one] = QtWidgets.QPushButton(self.centralwidget)
if len(one)> 25:
buttons[one].setText(spliter(20, one))
else:
buttons[one].setText(one)
buttons[one].clicked.connect(lambda: self.set_(one))
buttons[one].setStyleSheet("QPushButton{\n"
"color: white;\n"
"border: 2 solid rgb(20, 23, 48);\n"
"height: 51;"
"border-radius: 20;}"
"\n"
"QPushButton:hover{\n"
"background-color: white;\n"
"color: rgb(20, 23, 48);\n"
"}\n"
"\n"
"QPushButton:pressed{\n"
"color: green;\n"
"border: 2 solid white;\n"
"border-radius: 20;}")
# Шрифт кнопок
font = QtGui.QFont()
font.setFamily("Microsoft YaHei UI")
font.setPointSize(14)
font.setBold(False)
font.setWeight(50)
buttons[one].setFont(font)
self.verticalLayout_3.addWidget(buttons[one])
spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Expanding)
self.verticalLayout_3.addItem(spacerItem)
self.textEdit.setText("")```