0

我正在用 Raspberry 的屏幕编写一个 GUI。每次我销毁一个 GUI 并调用一个新的 GUI 时,都会有大约几秒钟的延迟,让用户看到树莓的桌面。我想在后台绘制一个加载界面,这样当我切换屏幕时,用户就不会看到树莓桌面。我使用这段代码:

from tkinter import *

class Load_Screen:

    def __init__(self, master):
        self.master = master
        self.master.configure(background='white')
        self.frame = Frame(self.master)
        self.frame.pack()

        self.canvas = Canvas(self.frame, width = 350, height = 250)
        self.canvas.configure(background='white')
        self.canvas.pack()

        self.img = PhotoImage(file="image/loading.png")
        self.canvas.create_image(55,150, anchor=W, image=self.img)

        newWindow = Toplevel(self.master)
        newWindow.geometry("700x500")
        app = Main_Screen(newWindow)

class Main_Screen:

    def __init__(self, master):
        self.master = master
        self.frame = Frame(self.master)
        self.frame.pack()

def main(): 
    root = Tk()
    root.geometry("760x600")
    app = Load_Screen(root)

    root.mainloop()

if __name__ == '__main__':
    main()

但是,加载屏幕会覆盖主屏幕。而我想要相反的,底部的加载屏幕和上面的主屏幕

4

1 回答 1

1

这是我在 如何使 Tkinter 窗口跳转到前面找到的解决方案?

from tkinter import *

class Load_Screen:

    def __init__(self, master):
        self.master = master
        self.master.configure(background='white')
        self.frame = Frame(self.master)
        self.frame.pack()

        self.canvas = Canvas(self.frame, width = 350, height = 250)
        self.canvas.configure(background='white')
        self.canvas.pack()

        self.img = PhotoImage(file="image/loading.png")
        self.canvas.create_image(55,150, anchor=W, image=self.img)

        newWindow = Toplevel(self.master)
        newWindow.geometry("700x500")
        app = Main_Screen(newWindow)

class Main_Screen:

    def __init__(self, master):
        self.master = master
        self.frame = Frame(self.master)
        self.frame.pack()

def main(): 
    root = Tk()
    root.geometry("760x600")
    root.lift()
    app = Load_Screen(root)

    root.mainloop()

if __name__ == '__main__':
    main()

使用 root.lift() 在 Main_Screen 下面制作 Load_Screen

于 2019-05-15T03:30:52.593 回答