Осложнения с логическими значениями в графическом интерфейсе и вывод на экран для отображения расчетной цены, основанной на логических входных данных пользователя в графическом интерфейсе?

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

Я только что попросил помощи на Mad Lib и пытался создать подобный способ и, вероятно, имел опечатки, но я получаю сообщение об ошибке без атрибутов для чего-то, что, похоже, явно там. Любая помощь?

import tkinter as tk #tk, again, is easier to type

class Application(tk.Frame): # Set up the GUI
    def __init__(self, master):
        tk.Frame.__init__(self, master)

        tk.Label(self, text="Please place your order. Select all you want.").grid(row=0, column=0, columnspan=2, sticky="w")

        tk.Label(self, text="Menu:").grid(row= 1, column=0, sticky="w")
        self.is_nose = tk.BooleanVar()
        tk.Checkbutton(self, text="Jellied moose nose ... $97", variable=self.is_nose).grid(row=2, column=1, sticky="w")

        self.is_hag = tk.BooleanVar()
        tk.Checkbutton(self, text="Haggis ... $18", variable=self.is_hag).grid(row=2, column=2, sticky="w")

        self.is_feet = tk.BooleanVar()
        tk.Checkbutton(self, text="Chicken feet ... $2", variable=self.is_feet).grid(row=2, column=3, sticky="w")

        tk.Label(self, text="Sauce:").grid(row=3, column=0, sticky="w") # sauce options raio buttons (choose one)
        self.sauce = tk.StringVar()
        sauce = ["Maple syrup", "Chimichurri", "Wasabi"] # options for sauces

        column = 1
        for sau in sauce: # loop to place and label the radio buttons for sauces
            tk.Radiobutton(self, text=sau, variable=self.sauce, value=sau).grid(row=4, column=column, sticky="w")
            column += 1

        tk.Button(self, text="Calculate your price!", command=self.menu_order).grid(row=5, column=0, sticky="w")
        self.order_txt = tk.Text(self, width=75, height=10, wrap="word")
        self.order_txt.grid(row=6, column=0, columnspan=4)

    def menu_order(self):
        order = ""
        price = 0

        if self.is_nose():
            order += "You chose jellied moose nose. Gross. Price is $97. \n"
            price = price + 97
        if self.is_hag():
            order += "You chose haggis. Yuck. Price is $45. \n"
            price = price + 45   
        if self.is_feet():
            order += "You chose chicken's feet. Why? Price is $3. \n"
            price = price + 3
        sauce = self.sauce.get()

        order = "You have successfully placed your next stomachache! "
        order += "Here is your order: "
        order += order + " "
        order += "Your total price will be "
        order += price + " dollars today."
        order += "Why did you order that?!"

        self.order_txt

        self.order_txt.delete("1.0", "end")
        self.order_txt.insert("1.0", order)
        self.order_txt.insert("1.0", price)


root = tk.Tk()
root.title("Order Up!")
app = Application(root).grid(row=0, column=0, sticky="nsew")
root.mainloop()

Теперь я получаю новый набор ошибок вокруг логических значений теперь, когда отступ исправлен.

Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Users\HP\AppData\Local\Programs\Python\Python36\lib\tkinter\__init__.py", line 1702, in __call__
    return self.func(*args)
  File "C:/Users/HP/AppData/Local/Programs/Python/Python36/Order Up.py", line 72, in menu_order
    if self.is_nose():
TypeError: 'BooleanVar' object is not callable
Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Users\HP\AppData\Local\Programs\Python\Python36\lib\tkinter\__init__.py", line 1702, in __call__
    return self.func(*args)
  File "C:/Users/HP/AppData/Local/Programs/Python/Python36/Order Up.py", line 72, in menu_order
    if self.is_nose():
TypeError: 'BooleanVar' object is not callable

0 ответов

Другие вопросы по тегам