У меня есть школьный проект по созданию сайта в tkinter python.Моя проблема в функции "Whats_for_dinner".И моя проверка, и переключатели не заменяют переменную, чтобы я мог определить, какая из них выбрана (т.е. переключатель переключается на ноль вместо изменения на 1, 2, 3 и т. Д.).Кроме того, переключатели имеют более одного выбранного.
Любая помощь приветствуется.
Я довольно новичок в программировании на python, поэтому простейшие исправления могут быть лучше всего для меня понять.
Это мой код:
#Description: This GUI program will imitate an online sevice
# like Uber Eats. Another feature is a quiz for the user to take
# too make a good sugestion on a food you can order to eat.
import tkinter
import tkinter.messagebox
class MyGUI:
def __init__(self):
# Create the main window widget.
self.main_window = tkinter.Tk()
#Frames
self.quizFrame = tkinter.Frame(self.main_window)
#Quiz button
self.quiz = tkinter.Button (self.quizFrame, bg = 'light green', font = 'Cipote 55 bold', text = "What's for Dinner?", command = self.Whats_for_dinner)
#Pack Quiz Buttons
self.quiz.pack()
#Pack Frames
self.quizFrame.pack()
# Enter the tkinter main loop.
tkinter.mainloop()
def Whats_for_dinner(self):
#Create main window widget
self.second_window = tkinter.Tk()
#Frames
self.question1_frame = tkinter.Frame(self.second_window)
self.buttonFrame = tkinter.Frame(self.second_window)
#Question 1
self.Q1Label = tkinter.Label(self.question1_frame, font = 'times 14 bold', text = 'Are you...')
self.Q1 = tkinter.IntVar()
self.Q1.set(0)
self.vegitarian = tkinter.Radiobutton(self.question1_frame, text = 'Vegitarian', variable = self.Q1, value=1)
self.pescetarian = tkinter.Radiobutton(self.question1_frame, text = 'Pescetarian', variable = self.Q1, value=2)
self.vegan = tkinter.Radiobutton(self.question1_frame, text = 'Vegan', variable = self.Q1, value=3)
self.NR = tkinter.Radiobutton(self.question1_frame, text = 'No restriction', variable = self.Q1, value=4) #NR stands for No Restriction
# Make What's for dinner button and refresh button
self.whats_for_dinner = tkinter.Button(self.buttonFrame, text = "What's for Dinner?", command = self.calculate)
#Pack Questions
self.Q1Label.pack()
self.vegitarian.pack(side = 'left')
self.pescetarian.pack(side = 'left')
self.vegan.pack(side = 'left')
self.NR.pack(side = 'left')
#Pack Buttons
self.whats_for_dinner.pack(side = 'left')
#Pack Frames
self.question1_frame.pack()
self.buttonFrame.pack()
def calculate(self):
tkinter.messagebox.showinfo('Food', str(self.Q1.get()))
# Create an instance of the MyGUI class.
my_gui = MyGUI()
Примечание: нажмите зеленую кнопку, чтобы перейти к переключателям