我有一个简单的 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()
网上查了我尝试失败的例子
您可以最大化小窗口,它实际上是根窗口而不是FloatingWindow:
class App(tk.Tk):
def __init__(self):
tk.Tk.__init__(self)
self.floater = FloatingWindow(self)
self.attributes("-fullscreen", True)
这会将窗口设置为全屏。
但是,至少在我的设备上,使用此功能时“装饰”(窗口控制按钮,包括窗口关闭按钮)会消失,因此您应该为用户提供一种退出程序的方法,例如 .,一个绑定到
self.destroy()
. 的按钮