Кнопка выхода из Tkinter - PullRequest
       7

Кнопка выхода из Tkinter

0 голосов
/ 04 октября 2018

Я только начал изучать Python, и у меня проблема с тем, что я не могу получить кнопку, чтобы закрыть свою программу.Код:

from tkinter import *
import ScoreboardController as SC

class guiController(Frame):

    def open_scoreboard(self):
        scoreBoard = SC.ScoreboardController("scores.txt")
        for x in range(len(scoreBoard)):
            print("Name: {} \nScore: {}". format(scoreBoard[x].name, scoreBoard[x].score))

    def start_game(self):
        pass

    def hide_main_window(self):
        self.score_button.pack_forget()
        self.start_button.pack_forget()


    def create_widgets(self):

        self.frame = Frame(master=None, width=800, height=600)
        self.frame.pack()

        self.start_button = Button(self.frame)
        self.start_button["text"] = "Játék indítása"
        self.start_button["bg"] = "#5E99FF"
        self.start_button["fg"] = "#ffffff"
        self.start_button["command"] = self.start_game
        self.start_button.pack()
        self.start_button.place(x=300, y=455, bordermode=OUTSIDE, height=50, width=200)

        self.score_button = Button(self.frame)
        self.score_button["text"] = "Eredmények"
        self.score_button["bg"] = "#5E99FF"
        self.score_button["fg"] = "#ffffff"
        self.score_button["command"] = self.open_scoreboard
        self.score_button.pack()
        self.score_button.place(x=300, y=400, bordermode=OUTSIDE, height=50, width=200)

        self.quit_button = Button(self.frame)
        self.quit_button["text"] = "Kilépés"
        self.quit_button["bg"] = "#5E99FF"
        self.quit_button["fg"] = "#FFFFFF"
        self.quit_button["command"] = self.destroy()
        self.quit_button.pack()
        self.quit_button.place(x=300, y=510, bordermode=OUTSIDE, height=50, width=200)

    def __init__(self, master=None):

        Frame.__init__(self, master)
        self.place()
        self.create_widgets()

Когда я нажимаю кнопку, она ничего не делает (self.quit_button).Другие кнопки работают.

Заранее спасибо

1 Ответ

0 голосов
/ 04 октября 2018

Я не смог полностью протестировать ваш код, но вот что вы будете делать, когда нужно уничтожить мастер.Ваш код было немного сложно протестировать, пожалуйста, в будущем не включайте вещи, которые не могут быть протестированы, как ваш ScoreboardController.Также я переписал ваши кнопки на что-то попроще.

import tkinter as tk

class Example(tk.Frame):
    def __init__(self, master):
        tk.Frame.__init__(self, master)
        self.create_widgets()

    def start_game(self):
        pass

    def hide_main_window(self):
        self.score_button.pack_forget()
        self.start_button.pack_forget()

    def create_widgets(self):
        self.start_button = tk.Button(self, text="Játék indítása", bg="#5E99FF", fg="#ffffff")
        self.start_button.pack()

        self.score_button = tk.Button(self, text="Eredmények", bg="#5E99FF", fg="#ffffff", command=self.start_game)
        self.score_button.pack()

        self.quit_button = tk.Button(self, text="Kilépés", bg="#5E99FF", fg="#ffffff", command=self.master.destroy) # without ()
        self.quit_button.pack()

if __name__ == "__main__":
    root = tk.Tk()
    Example(root).pack() # root passing to master in the Frame class
    root.mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...