0

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()

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

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

4

1 回答 1

0

好吧……我找到了解决方案,即使我不喜欢它。我没有反对 windows 或微软的任何东西,但我真的不喜欢微软商店。但我必须屈服,这确实解决了我的问题:

我去微软商店安装了 python 3.9。我不知道我为什么这样做。我不知道为什么它有帮助。我使用安装的名为“Python 3.9(Windowed)”的程序/应用程序启动了我的 .pyw 文件,而 badaboom,badabing,我的问题出于某种可怕的原因,消失了......

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

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

Tl;博士:

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

于 2021-01-29T23:35:52.197 回答