是否有更好的方法在 tkinter GUI 中创建启动画面/加载屏幕

问题描述 投票:0回答:1

创建一个自动化的 Tkinter Gui 仪表板并使用 pyinstaller(.exe) 部署它 该应用程序需要花费大量时间来加载。所以我决定添加一个加载屏幕/闪屏。 我在 youtube 和一些博客上了解到它。他们都创建了一个虚拟的主应用程序

from tkinter import *
from tkinter import font
from PIL import ImageTk, Image 
import time

w=Tk()

width_of_window = 500
height_of_window = 500
screen_width = w.winfo_screenwidth()
screen_height = w.winfo_screenheight()
x_coordinate = (screen_width/2)-(width_of_window/2)
y_coordinate = (screen_height/2)-(height_of_window/2)
w.geometry("%dx%d+%d+%d" %(width_of_window,height_of_window,x_coordinate,y_coordinate))
#w.configure(bg='#ED1B76')
w.overrideredirect(1) #for hiding titlebar

#new window to open
def new_win():
    q=Tk()
    q.title('main window')
    q.mainloop()

我有一个非常大的应用程序,那么我真的必须将它放在函数定义中还是有更好的方法吗?它确实有效,但我觉得把这么大的代码放在一个函数中很奇怪。

python python-3.x tkinter coding-style splash-screen
1个回答
0
投票

我会说更好的方法是只创建一个

Tk
的实例。

一种方法是为启动画面创建一个基于框架的类,为您的主应用程序创建另一个类。将启动画面的框架添加到根窗口,然后构建主应用程序的框架。当您准备好切换时,删除启动画面框架并添加主应用程序的框架。

或者,使用

Toplevel
作为初始屏幕并撤回根窗口,直到您准备好显示它。然后,隐藏或销毁
Toplevel
的实例并显示根窗口。

© www.soinside.com 2019 - 2024. All rights reserved.