Python3在启动时最大化应用程序

Python3在启动时最大化应用程序,python,tkinter,Python,Tkinter,好吧,我在这件事上一直把头撞在墙上。这个问题已经被问了好几次,也被回答了很多次。然而,在我的情况下,这些修复程序无法正常工作,迫切需要一些帮助。这就是我的工作内容;树莓皮3,python 3.4 问题是在启动时使用代码最大化应用程序,两个窗口打开!!啊哈!!!一个完全空白的窗口会打开全屏,我的应用程序也会打开,但不会被触动。我肯定我错过了一些愚蠢的东西,但我已经把我的头撞在墙上好几天了,哈哈 这是我的全部代码,任何帮助都将非常感谢 import tkinter as tk from tkint

好吧,我在这件事上一直把头撞在墙上。这个问题已经被问了好几次,也被回答了很多次。然而,在我的情况下,这些修复程序无法正常工作,迫切需要一些帮助。这就是我的工作内容;树莓皮3,python 3.4

问题是在启动时使用代码最大化应用程序,两个窗口打开!!啊哈!!!一个完全空白的窗口会打开全屏,我的应用程序也会打开,但不会被触动。我肯定我错过了一些愚蠢的东西,但我已经把我的头撞在墙上好几天了,哈哈

这是我的全部代码,任何帮助都将非常感谢

import tkinter as tk

from tkinter import ttk



LARGE_FONT=("Impact", 12, "bold")
class TESOSapp (tk.Tk):
    def __init__(self, *args,**kwargs):
        tk.Tk.__init__(self,  *args, **kwargs)
        tk.Tk.wm_title(self, "Thrive Energy Systems")
        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 (SystemRun, ManualRun, SystemSettings, Diagnostics):


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

        self.show_frame(SystemRun)


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

class SystemRun(tk.Frame):
    def __init__(self, parent, controller):
        tk.Frame.__init__(self,parent)
        frame = tk.Frame(self)
        frame.grid(rowspan=8, columnspan=4)



        label = tk.Label(self, width=100, height=1)
        label.grid(row=0, column=0, rowspan=1, columnspan=4)

        #Menu
        Menu1=tk.Button(self, width=16, height=1,
                        font=("Impact", 12, "italic", "bold"),
                        text="SYSTEM RUN", bg='dark gray', command=lambda: controller.show_frame(SystemRun))
        Menu1.grid(row=1, column=0)
        Menu2=tk.Button(self, width=16, height=1,
                         font=("Impact", 12, "italic", "bold"),
                        text="MANUAL RUN", bg='dark gray', command=lambda: controller.show_frame(ManualRun))
        Menu2.grid(row=1, column=1)
        Menu3=tk.Button(self, width=16, height=1,
                         font=("Impact", 12, "italic", "bold"),
                        text="SYSTEM SETTINGS", bg='dark grey', command=lambda: controller.show_frame(SystemSettings))
        Menu3.grid(row=1, column=2)
        Menu4=tk.Button(self, width=16, height=1,
                         font=("Impact", 12, "italic", "bold"),
                        text="DIAGNOSTICS", bg='dark gray', command=lambda: controller.show_frame(Diagnostics))
        Menu4.grid(row=1, column=3)

        label = tk.Label(self, width=100, height=1)
        label.grid(row=2, columnspan=4)


        #Buttons

        CycleRun=tk.Button(self, width=16, height=2,
                         font=("Impact", 12, "italic", "bold"),
                           text="CYCLE RUN", bg='darkorange')
        CycleRun.grid(row=3, column=0)
        CycleRun=tk.Button(self, width=16, height=2,
                         font=("Impact", 12, "italic", "bold"),
                           text="SERVICE MODE", bg='darkorange')
        CycleRun.grid(row=4, column=0)
        CycleRun=tk.Button(self, width=16, height=2,
                         font=("Impact", 12, "italic", "bold"),
                           text="AUTOMATIC OVERIDE", bg='darkorange')
        CycleRun.grid(row=5, column=0)
        CycleRun=tk.Button(self, width=16, height=2,
                         font=("Impact", 12, "italic", "bold"),
                           text="SYSTEM SHUTDOWN", bg='darkorange')
        CycleRun.grid(row=6, column=0)




class ManualRun(tk.Frame):

    def __init__(self, parent, controller):
        tk.Frame.__init__(self,parent)
        frame = tk.Frame(self)
        frame.grid(rowspan=8, columnspan=4)

        label = tk.Label(self, width=16, height=1)
        label.grid(row=0, columnspan=4)

        #Menu
        Menu1=tk.Button(self, width=16, height=1,
                         font=("Impact", 12, "italic", "bold"),
                        text="SYSTEM RUN", command=lambda: controller.show_frame(SystemRun))
        Menu1.grid(row=0, column=0)
        Menu2=tk.Button(self, width=16, height=1,
                         font=("Impact", 12, "italic", "bold"),
                        text="MANUAL RUN", command=lambda: controller.show_frame(ManualRun))
        Menu2.grid(row=0, column=1)
        Menu3=tk.Button(self, width=16, height=1,
                         font=("Impact", 12, "italic", "bold"),
                        text="SYSTEM SETTINGS", command=lambda: controller.show_frame(SystemSettings))
        Menu3.grid(row=0, column=2)
        Menu4=tk.Button(self, width=16, height=1,
                         font=("Impact", 12, "italic", "bold"),
                        text="DIAGNOSTICS", command=lambda: controller.show_frame(Diagnostics))
        Menu4.grid(row=0, column=3)





class SystemSettings(tk.Frame):

    def __init__(self, parent, controller):
        tk.Frame.__init__(self,parent)
        frame = tk.Frame(self)
        frame.grid(rowspan=8, columnspan=4)


        label = tk.Label(self, width=16, height=1)
        label.grid(row=0, columnspan=4)


        #Menu
        Menu1=tk.Button(self, width=16, height=1,
                         font=("Impact", 12, "italic", "bold"),
                        text="SYSTEM RUN", command=lambda: controller.show_frame(SystemRun))
        Menu1.grid(row=0, column=0)
        Menu2=tk.Button(self, width=16, height=1,
                         font=("Impact", 12, "italic", "bold"),
                        text="MANUAL RUN", command=lambda: controller.show_frame(ManualRun))
        Menu2.grid(row=0, column=1)
        Menu3=tk.Button(self, width=16, height=1,
                         font=("Impact", 12, "italic", "bold"),
                        text="SYSTEM SETTINGS", command=lambda: controller.show_frame(SystemSettings))
        Menu3.grid(row=0, column=2)
        Menu4=tk.Button(self, width=16, height=1,
                         font=("Impact", 12, "italic", "bold"),
                        text="DIAGNOSTICS", command=lambda: controller.show_frame(Diagnostics))
        Menu4.grid(row=0, column=3)




class Diagnostics(tk.Frame):

    def __init__(self, parent, controller):
        tk.Frame.__init__(self,parent)
        frame = tk.Frame(self)
        frame.grid(rowspan=8, columnspan=4)


        label = tk.Label(self, width=16, height=1)
        label.grid(row=0, columnspan=4)


        #Menu
        Menu1=tk.Button(self, width=16, height=1,
                         font=("Impact", 12, "italic", "bold"),
                        text="SYSTEM RUN", command=lambda: controller.show_frame(SystemRun))
        Menu1.grid(row=0, column=0)
        Menu2=tk.Button(self, width=16, height=1,
                         font=("Impact", 12, "italic", "bold"),
                        text="MANUAL RUN", command=lambda: controller.show_frame(ManualRun))
        Menu2.grid(row=0, column=1)
        Menu3=tk.Button(self, width=16, height=1,
                         font=("Impact", 12, "italic", "bold"),
                        text="SYSTEM SETTINGS", command=lambda: controller.show_frame(SystemSettings))
        Menu3.grid(row=0, column=2)
        Menu4=tk.Button(self, width=16, height=1,
                         font=("Impact", 12, "italic", "bold"),
                        text="DIAGNOSTICS", command=lambda: controller.show_frame(Diagnostics))
        Menu4.grid(row=0, column=3)




root = tk.Tk()
root.attributes('-zoomed', True)
root.wm_title('Thrive Energy Systems')
app= TESOSapp()
app.mainloop()
调用Tk()两次,因此得到两个窗口。由于您的TESOSapp类继承自Tk,因此可以将其视为根。因此,简单的解决方法是将底部改为:

app=TESOSapp()
app.attributes('-zoomed', True)
app.wm_title('Thrive Energy Systems')
app.mainloop()
在我看来,更好的解决办法是始终从框架继承,而不是从Tk继承

class TESOSapp (tk.Frame):
    def __init__(self, *args,**kwargs):
        tk.Frame.__init__(self,  *args, **kwargs)

app= TESOSapp(root)

欢迎来到堆栈溢出!为了让我们帮助您解决您的问题,请参阅以最小、完整和可验证的示例重新创建您的问题。您太棒了,先生!!它在一扇窗户里停了下来。但是,我确实收到一个错误“未定义名称‘root’”,其引用的行是(root.attributes('-zoomed',True)有没有快速修复方法?我尝试了另一种方法,但仍然得到一个类似的错误“root”未定义。我想我离此越来越近了。我做了您建议的其他调整,不得不删除标题代码。我仍然有“root=tk.tk()这就避免了错误。现在,当我运行代码时,我得到了一个完整的窗口,但它是空的。因此,希望只是缺少了一些东西,可以将它们联系在一起。我的意思是让你摆脱
root=Tk()
和所有带有“root”的东西。因为你的类将Tk子类化,你现在使用它而不是
Tk()
,您可以使用“app”而不是“root”"。从你的OP中,删除最后5行,并用我给你的4行替换。好吧,我们noobies有时会有点固执。我将tk.Frame改回代码下半部分的tk.tk use应用程序,然后改为low,看它成功了!!!我希望这能让你脸上露出笑容,因为我甚至可以开始告诉你,我是多么感激你能谢谢!!干杯!!现在开始工作,寻找新的东西来击败我的头!!!:)