Все мои радиокнопки выбраны в Python в tkinter - PullRequest
0 голосов
/ 04 февраля 2020

Я пытаюсь сделать простой заказ пиццы GUI, но когда я загружаю radioButtons для размеров пиццы, все кнопки выбираются сразу.

РЕДАКТИРОВАТЬ: После исправления кнопки больше не все выбираются при запуске. Теперь ни один из них не выбран при запуске, но когда вы наводите курсор мыши на кнопки, они выбирают самих себя, и можно выбрать несколько вариантов.

Вот код на данный момент:

from tkinter import *

class Pizza(Frame):
    """Initialize the Pizza program"""

    def __init__(self, master):
        """This sets up the Pizza program"""
        super(Pizza, self).__init__(master)
        self.grid()  # This is absolutely vital for future GUI projects!
        self.create_widgets()
        self.name = ""
        self.size = StringVar()
        self.size.set(value="small")

    def create_widgets(self):
        """This creates the input types"""
        # Adds text field for username entry

        # Not important for the question.

        # Adds Radiobuttons for users to interact with
        self.size_label = Label(self, text="Size:")
        self.size_label.grid(row=1, column=0)

        self.size_sml = Radiobutton(self, variable=self.size, value="small", text="Small")
        self.size_sml.grid(row=1, column=1)

        self.size_med = Radiobutton(self, variable=self.size, value="medium", text="Medium")
        self.size_med.grid(row=1, column=2)

        self.size_lrg = Radiobutton(self, variable=self.size, value="large", text="Large")
        self.size_lrg.grid(row=1, column=3)


root = Tk()
root.title("Order Pizza")
root.resizable(width=False, height=False)
app = Pizza(root)

root.mainloop()

Ответы [ 2 ]

0 голосов
/ 04 февраля 2020

Вызов функции, указанный в атрибуте command, не должен включать скобки ()

Это потому, что когда функция упоминается в скобках, она вызывается, когда вызывается функция create_widgets

Вы должны изменить его на self.size_sml = Radiobutton(self, command=self.small, text="Small")

0 голосов
/ 04 февраля 2020

Я не уверен, в чем проблема. Этот раздел кода, кажется, в порядке. При этом я бы порекомендовал, чтобы для того, как вы храните заказы какого размера люди, вам было бы лучше использовать числа, например small = 0 medium = 1 large = 2. Затем вы можете заменить это позже в коде, потому что теперь он просто немного необычно.

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