Я делаю систему ревизий для школы и хочу, чтобы она могла использовать модульное количество предметов на случай, если предмет добавлен в систему, поэтому мне нужен способ сделать несколько кнопок сразличные имена субъектов, и можно различать эти кнопки с помощью tkinter.Так, например, если бы они нажали кнопку «Математика», это привело бы их к другому фрагменту кода, специально предназначенному для математики (хотя это не может быть исключительно для математики, так как тогда мне потребуются определения для предметов, которые недаже было добавлено еще)
Сначала я просто попытался установить команду "print (subjectnames [subcount-1]))", думая, что это напечатало бы имя кнопки, но это просто напечатало оба имени сразудаже не нажимая кнопку.Затем я попытался изменить имя переменной в зависимости от имени кнопки, что я не ожидал сработать, я был просто ошеломлен и отчаялся
Здесь я начал настраивать определение
def chooseQuiz():
clearWindow()
subjectnames=[]
button=[]
Это, вероятно, было неважно, только метки для заголовка и пробела
Label(mainWindow, text="Which quizzes would you like to take?", bg='purple3', font=('constantia',25,"bold")).grid(row=0, column=0, padx=100, pady=0)
Label(mainWindow, bg='purple3').grid(row=1, column=0, padx=0, pady=15)
Здесь я извлекаю данные из таблицы SQL, чтобы получить все имена субъектов из всех тем, опять же, вероятно, неважно, но здесь большинствосделаны переменные
c.execute("SELECT Subject_name FROM topics")
for row in c.fetchall():
if row[0] in subjectnames:
pass
elif row[0] not in subjectnames:
subjectnames.append(row[0])
else:
messagebox.showerror("Error", "subjectnames are not appending")
chooseQuiz()
Это основная часть этого вопроса, где я попытался сформировать плавное число кнопок с разными командами, но безрезультатно
for subcount in range(len(subjectnames)):
button.append(Button(mainWindow, text=str(subjectnames[subcount-1]), bg='grey', fg='black', font=('cambria',15), width=25, command=(subject==subjectnames[subcount-1])))
button[-1].grid(row=subcount+2,column=0, padx=0, pady=15)
Iожидалось, что переменная объекта будет такой же, как и нажатая кнопка, но она останется равной 0 (исходное значение).Я думаю, что это связано с неправильным использованием командной функции в tkinter с моей стороны.Кнопки по-прежнему отображались нормально (в настоящее время только 2 предмета, математика и физика, и оба отлично).