[英]Display toplevel window on another fullscreen window tkinter python
[英]Cant exit fullscreen on tkinter window python
我试图使该窗口全屏显示,然后可以使用任意键进行转义。 我不能将转义键绑定到实际转义窗口,也无法从其他类似的帖子中找出问题出在哪里。
这是代码:
import tkinter as tk
from tkinter import *
root=Tk()
root.overrideredirect(True)
root.geometry("{0}x{1}+0+0".format(root.winfo_screenwidth(), root.winfo_screenheight()))
root.focus_set()
root.bind("<Escape>", lambda e: root.quit())
#mybuttonsandframesgohere
root.mainloop()
在某些系统(例如Linux)上, root.overrideredirect(True)
删除了显示边框的窗口管理(WM),但WM还将键/鼠标事件从系统发送到程序。 如果WM不发送事件,则您的程序不知道您单击了ESC。
这对我在Linux Mint(基于Ubuntu和Debian)上有效。 Rasbian基于Debian。
import tkinter as tk
def close_escape(event=None):
print("escaped")
root.destroy()
root = tk.Tk()
root.overrideredirect(True)
root.overrideredirect(False)
root.attributes("-fullscreen", True)
root.wm_attributes("-topmost", 1)
root.focus_set()
root.bind("<Escape>", close_escape)
root.after(5000, root.destroy) # close after 5s if `ESC` will not work
root.mainloop()
我仅将root.after(5000, root.destroy)
进行测试-如果ESC
无法正常工作,则在5秒后将其关闭。
我仅使用close_escape
来查看它是被ESC
还是after()
关闭。 如果代码有效,则可以使用root.bind("<Escape>", lambda event:root.destroy())
import tkinter as tk
root = tk.Tk()
root.overrideredirect(True)
root.overrideredirect(False)
root.attributes("-fullscreen", True)
root.wm_attributes("-topmost", 1)
root.focus_set()
root.bind("<Escape>", lambda event:root.destroy())
root.mainloop()
顺便说一句:您也可以在没有root.overrideredirect()
情况下尝试-也许它将对您root.overrideredirect()
import tkinter as tk
root = tk.Tk()
root.attributes("-fullscreen", True)
root.wm_attributes("-topmost", 1) # keep on top
#root.focus_set()
root.bind("<Escape>", lambda event:root.destroy())
root.mainloop()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.