Tkinter退出按钮

2024-07-07 08:04:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我刚开始学习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_按钮). 其他的按钮可以用。在

提前谢谢你


Tags: selfmasterdefplacebuttonwidth按钮frame
1条回答
网友
1楼 · 发布于 2024-07-07 08:04:40

我不能完全测试你的代码,但这里是你会做什么,当需要销毁硕士。您的代码有点难以测试,请不要包含像您的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()

相关问题 更多 >