如何实现不显示在任务栏的Tkinter GUI窗口(Windows10+Python3.5)
解决Tkinter窗口带图片且不在Windows 10任务栏显示的问题
嘿,我来帮你搞定这个需求!要让带图片的Tkinter窗口不在Windows 10任务栏露面,咱们得借助Windows系统API来实现——毕竟Tkinter本身没提供直接的隐藏任务栏选项。下面是针对Python 3.5的完整解决方案:
第一步:安装必要依赖
因为要调用Windows API和处理图片,得装两个库:
pywin32:用来操作窗口样式Pillow:用来加载和显示图片
注意Python 3.5的兼容性,得装对应版本的包,执行以下命令:
pip install pywin32==223 pip install pillow==8.4.0
第二步:完整示例代码
下面的代码会创建一个带图片的窗口,并且不会在任务栏显示:
import tkinter as tk import win32gui import win32con from PIL import Image, ImageTk def create_taskbar_hidden_window(): # 初始化主窗口 root = tk.Tk() root.title("隐藏任务栏的图片窗口") root.geometry("400x300") # 设置窗口大小 # 关键:修改窗口样式,让它不在任务栏显示 window_handle = root.winfo_id() # 获取当前窗口的扩展样式 current_ex_style = win32gui.GetWindowLong(window_handle, win32con.GWL_EXSTYLE) # 添加工具窗口样式(WS_EX_TOOLWINDOW),移除应用窗口样式(WS_EX_APPWINDOW) updated_ex_style = current_ex_style | win32con.WS_EX_TOOLWINDOW updated_ex_style = updated_ex_style & ~win32con.WS_EX_APPWINDOW win32gui.SetWindowLong(window_handle, win32con.GWL_EXSTYLE, updated_ex_style) # 加载并显示图片 try: # 替换成你自己的图片路径,比如"my_image.jpg" img = Image.open("example_image.png") # 调整图片大小适配窗口(可选) img = img.resize((380, 280), Image.ANTIALIAS) tk_img = ImageTk.PhotoImage(img) # 用Label显示图片 img_label = tk.Label(root, image=tk_img) img_label.image = tk_img # 必须保留引用,否则图片会被回收消失 img_label.pack(pady=10) except Exception as e: print(f"图片加载出错啦:{e}") tk.Label(root, text="图片加载失败").pack(pady=50) # 启动主循环 root.mainloop() if __name__ == "__main__": create_taskbar_hidden_window()
关键代码说明
WS_EX_TOOLWINDOW:Windows系统的窗口样式,标记为工具窗口的窗口不会出现在任务栏~win32con.WS_EX_APPWINDOW:移除应用窗口样式,确保窗口不会被识别为普通应用窗口而显示在任务栏- 图片引用:
img_label.image = tk_img这行一定要加,否则Tkinter会因为垃圾回收把图片对象销毁,导致窗口里看不到图片
注意事项
- 把代码里的
example_image.png替换成你实际的图片路径,支持JPG、PNG等常见格式 - 如果运行时提示找不到
win32gui或PIL,检查是不是装对了对应Python 3.5的版本包 - 这个方法只适用于Windows系统,其他系统(比如Linux、Mac)不需要这么操作
内容的提问来源于stack exchange,提问作者nicochulo
相关产品推荐
相关产品推荐

