При использовании кнопки в tkinter / python есть ли способ изменить текст кнопки на основе словаря? - PullRequest
0 голосов
/ 11 апреля 2020

Я создаю небольшую программу, которая опрашивает людей и использует те же 4 переключателя. Мне нужно, чтобы каждый вопрос представлял новый выбор ответа для каждого нового вопроса.

Упрощенный словарь, к которому мне нужно получить доступ, выглядит следующим образом:

{"1":  {"text": "America is the place where ______________ come true.", "answer": "dreams",
        "points": "1", "choices":
                           {"1": "dreams", "2": "wishes", "3": "visions", "4": "fantasies"}},
 "2": {"text":  "Which artist released the album 808s & Heartbreak?", "answer": "kanye", "points":"3", "choices": 
                           {"1": "kanye west", "2": "mike jones", "3": "kodak black", "4": "drake"}}}

и функция для возврата ответа:

def iterate_answer_choices(questions_num=1, answer_num=1):
  global temp_dict

  q_num = str(questions_num)
  a_num = str(answer_num)

  question2 = "2"
  answer3 = "3"
  return(temp_dict[q_num]['choices'][a_num])

Кнопка будет выглядеть следующим образом :

temp_a = StringVar() temp_a.set(iterate_answer_choices(1, 4)) rad_btn2 = Radiobutton(window, value=2, textvariable=temp_a, indicatoron=0) rad_btn2.pack()

Я знаю, что могу создать StringVar () для хранения текста, необходимого для кнопки, но это не изменится, когда мне понадобится новая переменная. У меня будет как минимум 10 вопросов с 4 ответами на каждый, так что это нежизнеспособно. Я также пытался связать textvalue с лямбда-функцией, возвращающей текст, но это тоже не сработало. Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...