From 78b73605a6adf23f4da612db8eeeb40161cce26f Mon Sep 17 00:00:00 2001 From: Eugenio Parodi Date: Wed, 22 Feb 2023 14:43:23 +0000 Subject: [PATCH] Handle keypresses in the selected widget --- ttkDesigner/app/windoweditor.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/ttkDesigner/app/windoweditor.py b/ttkDesigner/app/windoweditor.py index e27cf60b..bc3a2e53 100644 --- a/ttkDesigner/app/windoweditor.py +++ b/ttkDesigner/app/windoweditor.py @@ -78,6 +78,24 @@ class SuperControlWidget(ttk.TTkResizableFrame): self._alignWidToPos(bkPos) return ret + def keyEvent(self, evt): + if evt.type == ttk.TTkK.SpecialKey: + if evt.key in (ttk.TTkK.Key_Delete, ttk.TTkK.Key_Backspace) : + self._wid.close() + self.close() + self._wid.weModified.emit() + return True + bkPos = self.pos() + x,y = 0,0 + if evt.key == ttk.TTkK.Key_Up: y=-1 + elif evt.key == ttk.TTkK.Key_Down: y=1 + elif evt.key == ttk.TTkK.Key_Left: x=-1 + elif evt.key == ttk.TTkK.Key_Right: x=1 + if any((x,y)): + self.move(bkPos[0]+x, bkPos[1]+y) + self._alignWidToPos(bkPos) + return True + def paintEvent(self): w,h = self.size() self._wid.paintEvent()