# Create a custom application class "Hobbies" that inherits from CTk (Custom Tkinter)
class Hobbies(CTk):
# Constructor of the class
def __init__(self):
# Call the constructor of the parent class (CTk) using super()
super().__init__()
self.title("Hobbies")
# Create a label to display "Select your hobbies"
self.display_label = CTkLabel(self, text="Select your hobbies")
self.display_label.pack(padx=10, pady=10)
# Create a frame to hold the checkboxes
self.frame =CTkFrame(self)
self.frame.pack(padx=10, pady=10)
# Create a StringVar to store the value of the first hobby (initially empty)
self.hobby1 = StringVar()
# Create a CTkCheckBox for "Coding"
# When the checkbox is toggled, the self.hobby() method will be called
# The checkbox's variable is self.hobby1, and its values are "Coding" (checked) and "" (unchecked)
self.hobby1_cb = CTkCheckBox(self.frame, text="Coding", command=self.hobby,
variable=self.hobby1, onvalue="Coding", offvalue="")
self.hobby1_cb.grid(row=0, padx=10, pady=10)
# Create a StringVar to store the value of the second hobby (initially empty)
self.hobby2 = StringVar()
# Create a CTkCheckBox for "Cricket"
# When the checkbox is toggled, the self.hobby() method will be called
# The checkbox's variable is self.hobby2, and its values are "Cricket" (checked) and "" (unchecked)
self.hobby2_cb = CTkCheckBox(self.frame, text="Cricket", command=self.hobby,
variable=self.hobby2, onvalue="Cricket", offvalue="")
self.hobby2_cb.grid(row=1, padx=10, pady=10)
# Create a StringVar to store the value of the third hobby (initially empty)
self.hobby3 = StringVar()
# Create a CTkCheckBox for "Drawing"
# When the checkbox is toggled, the self.hobby() method will be called
# The checkbox's variable is self.hobby3, and its values are "Drawing" (checked) and "" (unchecked)
self.hobby3_cb = CTkCheckBox(self.frame, text="Drawing", command=self.hobby,
variable=self.hobby3, onvalue="Drawing", offvalue="")
self.hobby3_cb.grid(row=2, padx=10, pady=10)
# Create a label to display the selected hobbies
self.label= CTkLabel(self.frame, text="")
self.label.grid(row=3)
# Method to handle the checkbox toggle event
def hobby(self):
# Destroy the existing label to clear its contents
self.label.destroy()
# Create a new label to display the selected hobbies
self.label = CTkLabel(self.frame, text=f"{self.hobby1.get()} {self.hobby2.get()} {self.hobby3.get()}")
self.label.grid(row=3)
# Create an instance of the custom application class "Hobbies"
app = Hobbies()
# Start the main event loop of the application
app.mainloop()