最大化窗口

问题描述 投票:0回答:1

我有一个简单的 Python tkinter 脚本,它在正常的 tkinter 标题上叠加了一个黑色条(即左侧包含 tk 标志、右侧包含装饰的标题)。当我运行这个脚本时,它会生成一个小窗口,标题中带有常用的装饰。然后我必须单击最大化装饰才能将其打开。然后屏幕变为包含黑条标题的屏幕。我认为对那个小窗口的最大化进行硬编码是一个足够简单的任务。不幸的是,没有。事实证明我所有的努力都没有成功。大多数最大化工作要么生成具有正常 tkinter 标题且页面其余部分为黑色的页面,要么生成全黑屏幕。没有一个复制我在物理单击最大化装饰时得到的结果。也许这是窗口焦点问题。

这是脚本:

import tkinter as tk

class App(tk.Tk):
    def __init__(self):
        tk.Tk.__init__(self)
        self.floater = FloatingWindow(self)

class FloatingWindow(tk.Toplevel):
    def __init__(self, *args, **kwargs):
        tk.Toplevel.__init__(self, *args, **kwargs)
        self.overrideredirect(True)
        self.attributes( '-topmost', 1)
   
        # Maximize the window
        self.maximise_window("zoomed")
        
        self.label = tk.Label(self, text="                                                                                                                                                                                                                                                                                                                                                                                                                           ", bg = "Black")


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



app=App()
app.mainloop()

网上查了我尝试失败的例子

tkinter python-3.13
1个回答
0
投票

您可以最大化小窗口,它实际上是根窗口而不是FloatingWindow:

class App(tk.Tk):
    def __init__(self):
        tk.Tk.__init__(self)
        self.floater = FloatingWindow(self)
        self.attributes("-fullscreen", True)

这会将窗口设置为全屏。

但是,至少在我的设备上,使用此功能时“装饰”(窗口控制按钮,包括窗口关闭按钮)会消失,因此您应该为用户提供一种退出程序的方法,例如 .,一个绑定到

self.destroy()
.

的按钮
© www.soinside.com 2019 - 2024. All rights reserved.