相关疑难解决方法(0)

Python 3 Tkinter无边框全屏应用程序

我在创建Python 3 tkinter应用程序时遇到了问题.我目前正在使用Mac OSX系统进行开发,但我通常使用Windows操作系统.

我希望应用程序占用整个屏幕而窗口管理器的标题栏和框架不在应用程序周围,通常称为游戏中的全屏无边框窗口.

我已经尝试使用root.attributes("-fullscreen", True)root.overrideredirect(True)root.wm_attributes("-topmost", 1).然而,包含该root.overrideredirect(True)线不允许它进入适当的全屏; 它仍然显示Mac Dock和任务栏,它还会破坏我在应用程序中的击键绑定.如果没有该root.overrideredirect(True)行,应用程序将进入全屏模式(隐藏停靠栏和任务栏),但窗口不会填满整个屏幕; 它在底部留下了一个空隙,它还保留了窗口管理器的标题栏和框架/边框.

这是我的代码示例:

import tkinter as tk

class App(tk.Frame):
    def __init__(self, parent, *args, **kwargs):
        tk.Frame.__init__(self, parent)

        self.parent = parent

        self.initUI()

    def initUI(self):

        self.parent.title("Fullscreen Application")

        self.pack(fill="both", expand=True, side="top")

        self.parent.wm_state("zoomed")

        self.parent.bind("<F11>", self.fullscreen_toggle)
        self.parent.bind("<Escape>", self.fullscreen_cancel)

        self.fullscreen_toggle()

        self.label = tk.Label(self, text="Fullscreen", font=("default",120), fg="black")
        self.label.pack(side="top", fill="both", expand=True)

    def fullscreen_toggle(self, event="none"):

        self.parent.focus_set()
        self.parent.overrideredirect(True)

        self.parent.attributes("-fullscreen", True)
        self.parent.wm_attributes("-topmost", 1)

    def fullscreen_cancel(self, event="none"):

        self.parent.overrideredirect(False)
        self.parent.attributes("-fullscreen", False)
        self.parent.wm_attributes("-topmost", 0)

        self.centerWindow()

    def …
Run Code Online (Sandbox Code Playgroud)

window-managers tkinter fullscreen python-3.x

14
推荐指数
1
解决办法
4478
查看次数

overrideredirect做什么?

我已经明白了overrideredirect有助于删除像工具栏这样的默认窗口装饰.它的其他用途是什么?我不是很确定,也找不到太多文件.

我正在使用mac.使用tkinter我想获得的窗口仍然是maxsize并且无法调整大小,这是我使用几何可调整大小实现的.我现在需要的是保证我的用户没有随机击键可以关闭窗口.overrideredirect会帮助我吗?还有其他选择吗?

python tkinter

7
推荐指数
1
解决办法
8022
查看次数