tk窗口显示欢迎splash页面,然后再显示pywebview窗口,避免pywebview加载白屏

 1 import time
 2 import webview
 3 import tkinter as tk
 4 import threading
 5 
 6 def create_tk_window():
 7     splash = tk.Tk()
 8     # splash.withdraw()  # 初始隐藏窗口
 9     width=200
10     height=100
11     splash.overrideredirect(True)
12     splash.geometry("200x100+200+200")
13     splash.configure(bg="#f0f0f0")
14 
15     # 居中窗口
16     screen_width = splash.winfo_screenwidth()
17     screen_height = splash.winfo_screenheight()
18     x = (screen_width ) // 2
19     y = (screen_height ) // 2
20 
21     label = tk.Label(
22             splash, 
23             text="正在初始化...",
24             font=("Microsoft YaHei", 14),
25             bg="#f0f0f0"
26     )
27     label.pack(expand=True)
28 
29     splash.title('欢迎页')
30     splash.geometry(f"+{x}+{y}")
31     splash.overrideredirect(True)
32 
33     splash.attributes('-topmost', True)  # 设置为置顶
34     splash.after(100, lambda: splash.attributes('-topmost', False))  # 短暂置顶后取消
35     # 3秒后显示窗口
36     # splash.after(1000, splash.deiconify())
37 
38     splash.after(3000,lambda:splash.destroy())
39     print("-------show Tk")
40     tk.mainloop()
41 
42 def create_webview_window():
43     window = webview.create_window(
44         '主窗口',
45         url="https://www.cnblogs.com",
46         width=800,
47         height=480,
48         frameless=False,
49         #easy_drag=True,
50         #on_top=True,
51         #fullscreen=True,  # 启用全屏模式
52         maximized=True,  # 启用最大化模式
53         confirm_close=True,  # 关闭时确认
54         hidden=True
55     )
56     webview.start(show_window, window)
57 
58 def show_window(window):
59     print("-------sleep 3.....")
60     time.sleep(3)
61     print("-------wake up....")
62     window.show()
63 
64 if __name__ == "__main__":
65     # 创建并启动tkinter线程
66     tk_thread = threading.Thread(target=create_tk_window)
67     tk_thread.daemon = True
68     tk_thread.start()
69 
70     # 在主线程中启动webview
71     create_webview_window()

 

posted @ 2025-07-11 10:09  Pynix  阅读(34)  评论(0)    收藏  举报