【问题标题】:python full screen without console/borders没有控制台/边框的python全屏
【发布时间】:2017-05-11 04:42:03
【问题描述】:

我正在寻找一种方法来创建全屏窗口而不显示控制台(或边框),并在按下“退出”时退出全屏。我试图将扩展名从“py”重命名为“pyw”,但它并没有隐藏侧栏as some suggested

这是我最大化窗口的代码,但它并没有隐藏控制台:

def __init__(master): #I'm using tkinter for my GUI
    master = master
    width, height = master.winfo_screenwidth(), master.winfo_screenheight()
    master.geometry("%dx%d+0+0" % (width, height))

另外,我需要在 Mac 和 Windows 上都使用脚本,如果我需要隐藏控制台,它们的工作方式会有所不同吗?

我尝试过overrideredirect(True),但它不允许我使用我的任务所需的键盘。我也试过 wm_attributes('-fullscreen', True) ,但它并没有完全创建全屏,Mac 任务栏所在的顶部有一个空白位置。

那么有什么方法可以让我在没有工具栏(MacOS)的情况下使用全屏,并且键盘可以工作?

谢谢!

【问题讨论】:

    标签: python tkinter console fullscreen


    【解决方案1】:

    屏幕分辨率如何:

    from Tkinter import *
    import ttk
    
    def escape(root):
            root.geometry("200x200")
    
    def fullscreen(root):
            width, height = root.winfo_screenwidth(), root.winfo_screenheight()
            root.geometry("%dx%d+0+0" % (width, height))
            
    master = Tk()
    width, height = master.winfo_screenwidth(), master.winfo_screenheight()
    master.geometry("%dx%d+0+0" % (width, height))
    master.bind("<Escape>", lambda a :escape(master))
    #Added this for fun, when you'll press F1 it will return to a full screen.
    master.bind("<F1>", lambda b: fullscreen(master))
    master.mainloop()
    

    这是没有边界的(取自here):

    import tkinter as tk
    root = tk.Tk()
    root.attributes('-alpha', 0.0) #For icon
    #root.lower()
    root.iconify()
    window = tk.Toplevel(root)
    window.geometry("100x100") #Whatever size
    window.overrideredirect(1) #Remove border
    #window.attributes('-topmost', 1)
    #Whatever buttons, etc 
    close = tk.Button(window, text = "Close Window", command = lambda: root.destroy())
    close.pack(fill = tk.BOTH, expand = 1)
    window.mainloop()
    

    控制台的唯一解决方案是将文件另存为 .pyw,就像您已经阅读过的那样。您也可以尝试使用 overrideredirect(1) 覆盖 Tk 函数,但这会更复杂。

    希望这会对你有所帮助,Yahli。

    【讨论】:

    • 谢谢Yahli先生! overrideredirect(1) 确实使窗口全屏。但它似乎只适用于 Windows,但不适用于 MacOS(顶部工具栏仍然显示)。你知道在 Mac 上有什么工作吗?
    • 很高兴我能提供帮助,如果您觉得它足够好,请考虑接受我的回答 :) 关于您的问题 - 我会试试这个 self.tk._w.wm_attributes(fullscreen='true') 和这个 tl.tk.call("::tk::unsupported::MacWindowStyle", "style", tl._w, "plain", "none")(我从 @987654322 拿来的) @)。我没有 Mac,所以很遗憾,我无法调试这些方法来了解哪种方法效果最好。试试看,然后告诉我:)
    猜你喜欢
    • 2011-05-24
    • 1970-01-01
    • 2013-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-03
    • 2011-11-26
    • 1970-01-01
    相关资源
    最近更新 更多