Tkinter transparentcolor 使用 .py 但不适用于 .pyw

问题描述

root.attributes("-transparentcolor","white") 不适用于 .pyw 文件扩展名

直到昨天,我所有的 tkinter GUI 都像它们应该的那样工作,但两天前它们都停止了工作,就像我希望的那样。行 root.attributes("-transparentcolor","white") 一直使白色透明,就像它应该的那样,但现在它不像以前那样工作了。如果我使用 .py 文件扩展名而不是 .pyw 启动程序,它确实可以正常工作。显然,我不希望控制台窗口与我的所有程序一起打开,所以这不是我可以接受的。就像我说的,直到昨天,这一切都很好。

过去一天我一直在做各种尝试来解决这个问题,我什至完全卸载了python并重新安装了最新版本,但没有任何改变我的问题。

我现在在 Windows 10 and python 3.9.1(重新安装后,不记得我以前的版本了)

我没有做任何可能导致这种情况发生的事情,在问题出现之前我没有更新或更改任何内容,我只是像往常一样在早上启动计算机。

有人知道我可以尝试什么吗?任何人都可以尝试做同样的事情,看看它是否适合你?

如果保存为 .py 文件,下面的代码会创建一个具有透明背景的 tkinter 窗口,但如果保存为 .pyw 文件,则会创建一个具有白色背景的 tkinter 窗口。

from tkinter import *

root = Tk()

root.config(bg= 'white')
root.attributes('-transparentcolor','white')

root.mainloop()

更新:
嗯……我发现了一些有趣的东西! 如果我使用 pythonw 通过 cmd 提示符启动我的程序,我的问题仍然出现,但如果我以管理员身份运行 cmd 提示符执行相同的操作,一切都像以前一样,我会得到透明背景!

更新 2:
我已将 pythonw.exe 设置为始终以管理员身份运行,这解决了我的问题。但是如果我这样做,我总是会收到以前从未收到过的 uac 提示,所以我还没有解决我的问题,我只是找到了一个乏味的解决方法

解决方法

好吧……我找到了解决方案,尽管我不喜欢它。我对 Windows 或 Microsoft 没有任何反对意见,但我真的不喜欢 Microsoft 商店。但我不得不让步,这确实解决了我的问题:

我去微软商店安装了 python 3.9。我不知道我为什么这样做。我不知道为什么它有帮助。我使用已安装的名为“Python 3.9(窗口化)”的程序/应用程序启动了我的 .pyw 文件,badaboom,badabing,我的问题由于某些他妈的原因,消失了......

我不知道这是否是一个长期可行的解决方案(或根本就该问题)但它解决了我的问题,并且在连续 2 天将我的头撞在键盘上并想让我的电脑着火之后,我必须接受这个作为解决方案并继续前进...

感谢你@acw1668 和@martineau 的帮助,我真的很感激!

Tl;博士:

从微软商店下载 python 并使用该程序启动文件