def select_region(self, event): r_idx = self.region_list_box.curselection() if len(r_idx) == 0: self.current_reg_idx = None return self.current_reg_idx = r_idx[0] label = self.current_label.get() region = self.img_region_lut[self.current_img][label][r_idx[0]] self.clear_drawn_regions() if len(region) == 0: return for point in region: e = tk.Event() e.x, e.y = point self.draw_point(e, override_focus=True) min_x, min_y, reg_w, reg_h = cv2.boundingRect(region) min_x = min_x + (reg_w / 2.0) min_y = min_y + (reg_h / 2.0) c_h = self.canvas.winfo_height() / 2 c_w = self.canvas.winfo_width() / 2 self.canvas.xview_moveto((min_x - c_w) / self.image_dims[1]) self.canvas.yview_moveto((min_y - c_h) / self.image_dims[0])
def _dndsubstitute(self, *args): if len(args) != len(self._subst_format): return args def try_int(x): x = str(x) try: return int(x) except ValueError: return x A, a, b, D, d, m, T, W, X, Y, x, y = args event = tkinter.Event() event.action = A # Current action of the drag and drop operation. event.action_list = a # Action list supported by the drag source. event.mouse_button = b # Mouse button pressed during the drag and drop. event.data = D # The data that has been dropped. event.descr = d # The list of descriptions. event.modifier = m # The list of modifier keyboard keys pressed. event.dndtype = T event.widget = self.master.nametowidget(W) event.x_root = X # Mouse pointer x coord, relative to the root win. event.y_root = Y event.x = x # Mouse pointer x coord, relative to the widget. event.y = y event.action_list = str(event.action_list).split() for name in ('mouse_button', 'x', 'y', 'x_root', 'y_root'): setattr(event, name, try_int(getattr(event, name))) return (event, )
def _dndsubstitute(self, *args): if len(args) != len(self._subst_format): return args def try_int(x): x = str(x) try: return int(x) except ValueError: return x A, a, b, D, d, m, T, W, X, Y, x, y = args event = tk.Event() event.action = A event.action_list = a event.mouse_button = b event.data = D event.descr = d event.modifier = m event.dndtype = T event.widget = self.master.nametowidget(W) event.x_root = X event.y_root = Y event.x = x event.y = y event.action_list = str(event.action_list).split() for name in ('mouse_button', 'x', 'y', 'x_root', 'y_root'): setattr(event, name, try_int(getattr(event, name))) return (event, )
def test_event_repr(self): e = tkinter.Event() e.serial = 12345 e.num = 3 e.focus = True e.height = 200 e.keycode = 65 e.state = 0x30405 e.time = 123456789 e.width = 300 e.x = 10 e.y = 20 e.char = 'A' e.send_event = True e.keysym = 'Key-A' e.keysym_num = ord('A') e.type = tkinter.EventType.Configure e.widget = '.text' e.x_root = 1010 e.y_root = 1020 e.delta = -1 self.assertEqual( repr(e), "<Configure event send_event=True" " state=Shift|Control|Button3|0x30000" " keysym=Key-A keycode=65 char='A'" " num=3 delta=-1 focus=True" " x=10 y=20 width=300 height=200>")
def callback(event): """ traitement des boutons et touches """ global g, n # print(event) if isinstance(event, str): a = tk.Event() a.keysym = event a.char = '' event = a if event.keysym == 'Right': if g < (n - 1) // 2: g += 1 dessine() elif event.keysym == 'Left': if g > 1: g -= 1 dessine() elif event.keysym == 'Up' or event.char == '+': if n < 40: n += 1 calcule() dessine() elif event.keysym == 'Down' or event.char == '-': if n > 3: n -= 1 if g > (n - 1) // 2: g -= 1 calcule() dessine() elif event.char == 'q': root.quit()
def _create_protocol_event(widget, name, tm): event = tkinter.Event() # Informational attributes event.time = int(tm*1000) event.type = name event.widget = widget # Default attributes event.char = "??" event.delta = 0 event.height = "??" event.keycode = "??" event.keysym = "??" event.keysym_num = "??" event.num = "??" event.serial = "??" event.state = "??" event.width = "??" event.x = "??" event.y = "??" event.x_root = "??" event.y_root = "??" return event
def _t2(): print('_t2') evt = tk.Event() evt.widget = None evt.x = None evt.y = None t.tk_run(evt) t.stack(*string.ascii_lowercase) t.stack_sig(*string.ascii_uppercase) t.chain_root()
def __init__(self, Queue): # global PoisonPill threading.Thread.__init__(self) # initiate the thread self.q = Queue # -- set the poison pill event for Reset --# self.PoisonPill = tk.Event() cg.PoisonPill = self.PoisonPill # global reference self.file = 1 cg.root.after(10, self.start) # initiate the run() method
def _tabsubst(self, *args): if len(args) != len(self._tabsubst_format): return args tk = self.tk c, C, i, r, s, S, W = args e = tkinter.Event() e.widget = self e.c = tk.getint(c) e.i = tk.getint(i) e.r = tk.getint(r) e.C = "%d,%d" % (e.r, e.c) e.s = s e.S = S try: e.W = self._nametowidget(W) except KeyError: e.W = None return (e, )
def test_event_repr_defaults(self): e = tkinter.Event() e.serial = 12345 e.num = '??' e.height = '??' e.keycode = '??' e.state = 0 e.time = 123456789 e.width = '??' e.x = '??' e.y = '??' e.char = '' e.keysym = '??' e.keysym_num = '??' e.type = '100' e.widget = '??' e.x_root = '??' e.y_root = '??' e.delta = 0 self.assertEqual(repr(e), '<100 event>')
def enterSize(self, evt): if self.rgnSizeEntry.cget('state') == 'disabled': return try: newSize = hex(int((self.rgnSizeEntry.get()).upper(), 16)) except: tkinter.messagebox.showerror('Error', 'Invalid Value!') self.rgnSizeEntry.delete(0, 'end') self.rgnSizeEntry.insert(0, self.rgnSize.upper()) return else: if int(newSize, 16) == int(self.rgnSize, 16): return elif (int(newSize, 16) % int('0x1000', 16) != 0) or int( newSize, 16) > int(MAX_SIZE, 16) or int(newSize, 16) <= 0: tkinter.messagebox.showerror('Error', 'Invalid Value!') self.rgnSizeEntry.delete(0, 'end') self.rgnSizeEntry.insert(0, self.rgnSize.upper()) return sLabel = self.rgnSizeLabel.cget('text') for macro in self.macroDict: l = re.search('[FLASH]+_REGION_' + sLabel + '_SIZE', macro) if l: label = l.group(0) break newSize = newSize[0:2] + (newSize[2:]).upper() restore(self.cfgDict, self.switchInused, label, hexFillZero(newSize, 8)) self.prsBtnCallback() e = tkinter.Event() for w in self.flashFrame.winfo_children(): if w.cget('text') == sLabel: e.widget = w break self.rgnButtonCallback(e)
def test_key_pressed(self, mocked_builtins): mocked_builtins.repr.return_value = "a" e = tk.Event() e.char = chr(119) # character 'w' self.new_game.key_pressed(e) mocked_builtins.repr.assert_called_once()
def onKeySym(s): e = tkinter.Event() e.char = e.keysym = s return lambda: onKey(e)
def replace(self, index1, index2, chars, *args): self.tk.call(self._w, 'replace', index1, index2, chars, *args) self._keyRelease(tkinter.Event())
def nextFunc() -> None: print("next function here") graphics.destroyEvent(tk.Event())
def repeat_render(self): for key, value in self._repeat_render_list.items(): event = tkinter.Event() event.num = key (func, radio) = value eval(func)(event, radio)
def enter_click(event): e = tk.Event() e.widget = equal_btn click_btn_function(e)
def ReviveCell(self, index, Colour="#FFFF00"): event = tkinter.Event() event.x, event.y = self.GetPositionFormIndex(index) event.x += 2 event.y += 2 self.CreateCell(event, Colour)
def insert(self, index, chars, *args): self.tk.call((self._w, 'insert', index, chars) + args) self._keyRelease(tkinter.Event())