我有一个python tkinter应用程序,我想全屏运行。当我取消注释overrideredirect时,窗口管理器(Gnome,Linux)将无法再将键击转发给应用程序。
(fragment,python)
# make it cover the entire screen
w, h = master.winfo_screenwidth(), master.winfo_screenheight()
self.root.geometry("%dx%d+0+0" % (w, h))
self.root.focus_set() # <-- move focus to this widget
self.root.bind('<Escape>', self.root.quit())
#self.root.overrideredirect(True)
我找到了Tcl / Tk的window ::或包,它应该可以解决这个bug。我将如何安装它,是否可以在我的python应用程序中使用它?
答案 0 :(得分:3)
这适用于您使用overrideredirect获取全屏的用例,这有点常见:
#self.root.overrideredirect(1)
self.root.attributes('-fullscreen', True)
答案 1 :(得分:0)
执行绑定时,您可能希望输入可调用self.root.quit
而不是self.root.quit()
以避免调用该函数。当你按Escape时,将使用event参数调用callable(我知道我知道)。如果self.root.quit()
不接受任何参数:使用lambda:self.root.bind('<Escape>',lambda e:self.root.quit())