Tkinter全屏在Python 3.10 for Mac OS中不工作

7gyucuyw  于 2023-03-07  发布在  Python
关注(0)|答案(1)|浏览(151)

我刚刚将Python从3.8升级到3.10,Tkinter全屏属性不再像以前那样工作。
我使用的是Mac OS Big Sur 11.6.6(Macbook M1)。我在这台Macbook上安装了Python 3.8,它一直运行良好,直到我今天升级了Python。
下面是代码,根窗口在Python 3.10中没有全屏显示:

if __name__ == '__main__':

root = tkinter.Tk()

root.attributes('-fullscreen', True)

root.mainloop()

任何帮助都将是非常感谢的,因为我卡住了。我还看到了Python 3.10中UI的其他问题,所以如果我不能解决这些问题,我可能会回到Python 3.8:(

更新1我注意到我的MacBook在全屏属性下运行时发出哔哔声,但如果我注解掉该行,它就不会发出哔哔声。

我还注意到当我在键盘上输入时,比如在Entry小部件中,它会发出同样的哔哔声,在Python 3.8中它没有这样做,所以可能是相关的。

UPDATE 2我可以做一个有点难看的变通方案,使用一个延迟,并在250毫秒后用root.after(...)函数设置全屏属性。然后它就工作了。它看起来不太好,因为在实际程序打开之前,空白的白色背景闪过。

wnvonmuf

wnvonmuf1#

您需要改用root.wm_attributes()

示例

import tkinter as tk

root = tk.Tk()
root.wm_attributes('-fullscreen','true')
root.mainloop()

另一种方法是调用tcl,如下所示

root.tk.call("::tk::unsupported::MacWindowStyle", "style", root._w, "plain", "none")

只能使用其中一种方法。

相关问题