Tkinter脚本运行与终端直接执行时窗口透明度行为不一致问题求助
Tkinter脚本运行与终端直接执行时窗口透明度行为不一致问题求助
我正在尝试创建一个带透明度的界面,本以为这应该很简单,但遇到了一个让人困惑的bug。
如果我在终端里直接运行以下代码:
import tkinter as tk root = tk.Tk() root.geometry("400x400") root.attributes("-alpha", 0.5) root.mainloop()
一切正常,窗口按照我要求的尺寸和透明度完美创建出来了。但如果我把代码写成脚本(在同一个环境下运行),比如这样:
import tkinter as tk if __name__ == "__main__": root = tk.Tk() root.geometry("400x400") root.attributes("-alpha", 0.5) root.mainloop()
就不行了——窗口尺寸是对的,但透明度完全没生效。
我试过用wm_attributes和attributes两种方式,在运行python script.py的时候都不管用。
我是不是疯了?为什么这两种运行方式会有区别?
我的环境是完全一致的:用的是Python 3.13,没有其他依赖,系统是Ubuntu 22.04,窗口系统是x11。
补充说明:
我附上了环境一致的证明截图:截图里能看到当前所在文件夹、git状态、Python环境信息以及笔记本电量,确认两次运行的环境完全相同。
备注:内容来源于stack exchange,提问作者Nathan Gavenski
相关产品推荐
相关产品推荐

