Python Tkinter overrideredirect; не может получать нажатия клавиш (Linux) - PullRequest
3 голосов
/ 04 мая 2011

У меня есть приложение python tkinter, которое я хочу запустить в полноэкранном режиме.Когда я раскомментирую overrideredirect, оконный менеджер (Gnome, Linux) больше не сможет перенаправлять нажатия клавиш в приложение.

(фрагмент, 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)

Я нашелwindow :: или пакет для Tcl / Tk, который должен устранить эту ошибку.Как бы я мог установить это, и можно ли было бы использовать его из моего приложения на Python?

http://www.binarism.com/tk/window/or/

http://www.binarism.com/tk/window-or-0.1.1.tgz

Ответы [ 2 ]

3 голосов
/ 26 ноября 2012

Это работает для случая использования, когда вы используете overrideredirect для получения полноэкранного режима, что довольно часто встречается:

#self.root.overrideredirect(1)
self.root.attributes('-fullscreen', True)
0 голосов
/ 20 апреля 2015

Возможно, вы захотите ввести вызываемое self.root.quit вместо self.root.quit() при выполнении привязки, чтобы избежать вызова функции.когда вы нажмете Escape, будет вызван вызываемый объект (я знаю, что знаю) с аргументом события.Если self.root.quit() не принимает никаких аргументов: используйте лямбду: self.root.bind('<Escape>',lambda e:self.root.quit())

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...