Как сделать так, чтобы радио-кнопка была подключена к строке в текстовом файле и появилась в кадре - PullRequest
0 голосов
/ 30 января 2020

Я создал программу, которая должна позволять пользователям выбирать кандидата, за которого они хотели бы проголосовать. Я создал класс в отдельном файле python, но в той же папке, и использовал инструкцию import filename *. Когда я нажимаю кнопку, чтобы проголосовать за кандидатов, переключатели и текст не появляются на рамке.

class LoginSuccessful(tk.Frame):

def __init__(self, parent, controller):
    tk.Frame.__init__(self, parent)
    self.controller = controller

    label = tk.Label(self, text="Greenwich Student Union Voting System", bg="blue", fg="white",
                     width="200", height="2", font=controller.title_font)
    label.pack(side="top", fill="x", pady=10)

    button = tk.Button(self, text="View Candidates", height="2", width="30",
                       command=lambda: controller.show_frame("ViewCandidates"))
    button.pack()

    label = tk.Label(self, text="", )
    label.pack(side="top", fill="x", pady=10)

    button1 = tk.Button(self, text="Vote for Candidates", height="2", width="30",
                        command=lambda: controller.show_frame("VoteForPresident"))

Приведенный выше код находится в отдельном файле python, однако я связал python файлы вместе, используя оператор импорта

class VoteForPresident(tk.Frame):

    def __init__(self, parent, controller):
        tk.Frame.__init__(self, parent)
        self.controller = controller
        label = tk.Label(self, text="Vote for your President ", bg="red", fg="white",
                     width="200", height="2", font=controller.title_font)
        label.pack(side="top", fill="x", pady=10)

    def selection(self):
        radio = IntVar()

        selection = msg.showinfo("Submit", "You have chosen President Barn as your preference " + str(radio.get()))

        with open("PresidentCandidates.txt", "r") as f:
            label = tk.Label(self, text=f.read())
            label.pack(side="top", fill="x", pady=10)

        r1 = Radiobutton(text="1ST PREFERENCE", variable=radio, value=1, command=selection)
        r1.pack(side="top", fill="x", pady=10)

        r2 = Radiobutton(text="2ND PREFERENCE", variable=radio, value=2, command=selection)
        r2.pack(side="top", fill="x", pady=10)

        r3 = Radiobutton(text="3RD PREFERENCE", variable=radio, value=3, command=selection)
        r3.pack(side="top", fill="x", pady=10)

        r4 = Radiobutton(text="4TH PREFERENCE", variable=radio, value=4, command=selection)
        r4.pack(side="top", fill="x", pady=10)

        label = tk.Label(self, text="")
        label.pack(side="top", fill="x", pady=10)

        button = tk.Button(self, text="Back", height="2", width="30",
                       command=lambda: 
self.controller.show_frame("LoginSuccessful"))
    button.pack()
...