Example #1
0
    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, )
Example #3
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 = 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, )
Example #4
0
 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>")
Example #5
0
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()
Example #6
0
    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
Example #7
0
    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()
Example #8
0
            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
Example #9
0
 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, )
Example #10
0
 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>')
Example #11
0
    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)
Example #12
0
 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()
Example #13
0
def onKeySym(s):
    e = tkinter.Event()
    e.char = e.keysym = s
    return lambda: onKey(e)
Example #14
0
 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)
Example #17
0
def enter_click(event):
    e = tk.Event()
    e.widget = equal_btn
    click_btn_function(e)
Example #18
0
 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)
Example #19
0
 def insert(self, index, chars, *args):
     self.tk.call((self._w, 'insert', index, chars) + args)
     self._keyRelease(tkinter.Event())