tkinter窗口不显示

时间:2019-10-25 22:58:40

标签: python tkinter

我是python的新手,正在尝试开发一个webcrawler应用程序。目前,我没有收到任何错误消息,但是运行代码时gui不会显示。任何帮助表示赞赏。

我已经在stackoverflow上搜索了类似的问题,但是可以找到匹配的任何内容。

import tkinter as tk
from tkinter import ttk

LARGE_FONT=("Helvetica",12)

class MMA_fighters(tk.Tk):

    def __init__(self,*args,**kwargs):
        tk.Tk.__init__(self,*args,**kwargs)

        tk.Tk.wm_title(self,"Mixed Martial Arts Fighters")

        container =tk.Frame(self)
        container.pack(side="top",fill="both",expand="true")
        container.grid_rowconfigure(0,weight=1)
        container.grid_columnconfigure(0,weight=1)

        self.frames={ }

        for F in (StartPage,MainPage):

            frame=F(container,self)
            self.frames[F]=frame
            frame.grid(row=0,column=0)

        self.show_frame(StartPage)

    def show_frame(self,cont):
        frame=self.frames[cont]
        frame.tkraise()

class StartPage(tk.Frame):

    def __init__(self,parent,controller):
        tk.Frame.__init__(self,parent)
        label=ttk.Label(self,text="Mixed Martial Arts Fighters", font=LARGE_FONT)
        label.pack(pady=10, padx=10)
        label=ttk.Label(self,text="Select 'Continue' for more information on your favorite MMA fighter", font=LARGE_FONT)
        label.pack(pady=10, padx=10)

        button1=ttk.Button(self,text="Continue",command=lambda :controller.show_frame(MainPage))
        button1.pack()
        button2=ttk.Button(self,text="Exit",command=quit())
        button2.pack()


class MainPage(tk.Frame):

    def __init__(self,parent,controller):
        tk.Frame.__init__(self,parent)
        label=ttk.Label(self,text="Fighter",font=LARGE_FONT)
        label.pack(pady=10,padx=10)

app=MMA_fighters()
app.mainloop()

预期结果是出现带有退出并继续进行到第二页的项目的窗口。实际结果是窗口没有出现。

1 个答案:

答案 0 :(得分:0)

command=期望函数名称不包含()-所谓的“回调”-当您按下按钮时,mainloop将获得该名称并使用()来运行它。

但是您有command=quit(),因此它在启动和退出程序中执行quit()

您需要

command=quit

您可以使用app.destroy而不是quit来通知窗口您要结束程序,它应在结束程序之前关闭窗口。