当前位置: 首页>>代码示例>>Python>>正文


Python backend_bases.MouseEvent方法代码示例

本文整理汇总了Python中matplotlib.backend_bases.MouseEvent方法的典型用法代码示例。如果您正苦于以下问题:Python backend_bases.MouseEvent方法的具体用法?Python backend_bases.MouseEvent怎么用?Python backend_bases.MouseEvent使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在matplotlib.backend_bases的用法示例。


在下文中一共展示了backend_bases.MouseEvent方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: _process_event

# 需要导入模块: from matplotlib import backend_bases [as 别名]
# 或者: from matplotlib.backend_bases import MouseEvent [as 别名]
def _process_event(name, ax, coords, *args):
    ax.viewLim  # unstale viewLim.
    if name == "__mouse_click__":
        # So that the dragging callbacks don't go crazy.
        _process_event("button_press_event", ax, coords, *args)
        _process_event("button_release_event", ax, coords, *args)
        return
    display_coords = ax.transData.transform(coords)
    if name in ["button_press_event", "button_release_event",
                "motion_notify_event", "scroll_event"]:
        event = MouseEvent(name, ax.figure.canvas, *display_coords, *args)
    elif name in ["key_press_event", "key_release_event"]:
        event = KeyEvent(name, ax.figure.canvas, *args, *display_coords)
    else:
        raise ValueError(f"Unknown event name {name!r}")
    ax.figure.canvas.callbacks.process(name, event) 
开发者ID:anntzer,项目名称:mplcursors,代码行数:18,代码来源:test_mplcursors.py

示例2: get_picked_element

# 需要导入模块: from matplotlib import backend_bases [as 别名]
# 或者: from matplotlib.backend_bases import MouseEvent [as 别名]
def get_picked_element(self, event: MouseEvent, element: Artist = None, picked_element: Artist = None, last_selected: Artist = None):
        """ get the picked element that an event refers to.
        To implement selection of elements at the back with multiple clicks.
        """
        # start with the figure
        if element is None:
            element = self.figure
        finished = False
        # iterate over all children
        for child in sorted(element.get_children(), key=lambda x: x.get_zorder()):
            # check if the element is contained in the event and has an active dragger
            #if child.contains(event)[0] and ((getattr(child, "_draggable", None) and getattr(child, "_draggable",
            #                                                                               None).connected) or isinstance(child, GrabberGeneric) or isinstance(child, GrabbableRectangleSelection)):
            if child.get_visible() and child.contains(event)[0] and (child.pickable() or isinstance(child, GrabberGeneric)) and not (child.get_label() is not None and child.get_label().startswith("_")):
                # if the element is the last selected, finish the search
                if child == last_selected:
                    return picked_element, True
                # use this element as the current best matching element
                picked_element = child
            # iterate over the children's children
            picked_element, finished = self.get_picked_element(event, child, picked_element, last_selected=last_selected)
            # if the subcall wants to finish, just break the loop
            if finished:
                break
        return picked_element, finished 
开发者ID:rgerum,项目名称:pylustrator,代码行数:27,代码来源:drag_helper.py

示例3: button_press_event0

# 需要导入模块: from matplotlib import backend_bases [as 别名]
# 或者: from matplotlib.backend_bases import MouseEvent [as 别名]
def button_press_event0(self, event: MouseEvent):
        """ when the mouse button is pressed """
        if event.button == 1:
            last = self.selection.targets[-1] if len(self.selection.targets) else None
            contained = np.any([t.target.contains(event)[0] for t in self.selection.targets])

            # recursively iterate over all elements
            picked_element, _ = self.get_picked_element(event, last_selected=last if event.dblclick else None)

            # if the element is a grabber, store it
            if isinstance(picked_element, GrabberGeneric):
                self.grab_element = picked_element
            # if not, we want to keep our selected element, if the click was in the area of the selected element
            elif len(self.selection.targets) == 0 or not contained or event.dblclick:
                self.select_element(picked_element, event)
                contained = True

            # if we have a grabber, notify it
            if self.grab_element:
                self.grab_element.button_press_event(event)
            # if not, notify the selected element
            elif contained:
                self.selection.button_press_event(event) 
开发者ID:rgerum,项目名称:pylustrator,代码行数:25,代码来源:drag_helper.py

示例4: on_motion

# 需要导入模块: from matplotlib import backend_bases [as 别名]
# 或者: from matplotlib.backend_bases import MouseEvent [as 别名]
def on_motion(self, evt: MouseEvent):
        """ callback when the object is moved """
        if self.got_artist:
            self.movedEvent(evt)
            self.moved = True 
开发者ID:rgerum,项目名称:pylustrator,代码行数:7,代码来源:drag_helper.py

示例5: button_press_event

# 需要导入模块: from matplotlib import backend_bases [as 别名]
# 或者: from matplotlib.backend_bases import MouseEvent [as 别名]
def button_press_event(self, evt: MouseEvent):
        """ when the mouse is pressed """
        self.got_artist = True
        self.moved = False

        self._c1 = self.figure.canvas.mpl_connect('motion_notify_event', self.on_motion)
        self.clickedEvent(evt) 
开发者ID:rgerum,项目名称:pylustrator,代码行数:9,代码来源:drag_helper.py

示例6: button_release_event

# 需要导入模块: from matplotlib import backend_bases [as 别名]
# 或者: from matplotlib.backend_bases import MouseEvent [as 别名]
def button_release_event(self, event: MouseEvent):
        """ when the mouse is released """
        if self.got_artist:
            self.got_artist = False
            self.figure.canvas.mpl_disconnect(self._c1)
            self.releasedEvent(event) 
开发者ID:rgerum,项目名称:pylustrator,代码行数:8,代码来源:drag_helper.py

示例7: clickedEvent

# 需要导入模块: from matplotlib import backend_bases [as 别名]
# 或者: from matplotlib.backend_bases import MouseEvent [as 别名]
def clickedEvent(self, event: MouseEvent):
        """ when the mouse is clicked """
        self.parent.start_move()
        self.mouse_xy = (event.x, event.y)

        for s in self.snaps:
            s.remove()
        self.snaps = []

        self.snaps = getSnaps(self.targets, self.dir, no_height=self.no_height) 
开发者ID:rgerum,项目名称:pylustrator,代码行数:12,代码来源:drag_helper.py

示例8: releasedEvent

# 需要导入模块: from matplotlib import backend_bases [as 别名]
# 或者: from matplotlib.backend_bases import MouseEvent [as 别名]
def releasedEvent(self, event: MouseEvent):
        """ when the mouse is released """
        for snap in self.snaps:
            snap.remove()
        self.snaps = []

        self.parent.end_move() 
开发者ID:rgerum,项目名称:pylustrator,代码行数:9,代码来源:drag_helper.py

示例9: button_release_event0

# 需要导入模块: from matplotlib import backend_bases [as 别名]
# 或者: from matplotlib.backend_bases import MouseEvent [as 别名]
def button_release_event0(self, event: MouseEvent):
        """ when the mouse button is released """
        # release the grabber
        if self.grab_element:
            self.grab_element.button_release_event(event)
            self.grab_element = None
        # or notify the selected element
        elif len(self.selection.targets):
            self.selection.button_release_event(event) 
开发者ID:rgerum,项目名称:pylustrator,代码行数:11,代码来源:drag_helper.py

示例10: select_element

# 需要导入模块: from matplotlib import backend_bases [as 别名]
# 或者: from matplotlib.backend_bases import MouseEvent [as 别名]
def select_element(self, element: Artist, event: MouseEvent = None):
        """ select an artist in a figure """
        # do nothing if it is already selected
        if element == self.selected_element:
            return
        # if there was was previously selected element, deselect it
        if self.selected_element is not None:
            self.on_deselect(event)

        # if there is a new element, select it
        self.on_select(element, event)
        self.selected_element = element
        self.figure.canvas.draw() 
开发者ID:rgerum,项目名称:pylustrator,代码行数:15,代码来源:drag_helper.py

示例11: on_deselect

# 需要导入模块: from matplotlib import backend_bases [as 别名]
# 或者: from matplotlib.backend_bases import MouseEvent [as 别名]
def on_deselect(self, event: MouseEvent):
        """ deselect currently selected artists"""
        modifier = "shift" in event.key.split("+") if event is not None and event.key is not None else False
        # only if the modifier key is not used
        if not modifier:
            self.selection.clear_targets() 
开发者ID:rgerum,项目名称:pylustrator,代码行数:8,代码来源:drag_helper.py

示例12: applyOffset

# 需要导入模块: from matplotlib import backend_bases [as 别名]
# 或者: from matplotlib.backend_bases import MouseEvent [as 别名]
def applyOffset(self, pos: (float, float), event: MouseEvent):
        self.set_xy((self.ox+pos[0], self.oy+pos[1])) 
开发者ID:rgerum,项目名称:pylustrator,代码行数:4,代码来源:drag_helper.py

示例13: test_contains

# 需要导入模块: from matplotlib import backend_bases [as 别名]
# 或者: from matplotlib.backend_bases import MouseEvent [as 别名]
def test_contains():
    import matplotlib.backend_bases as mbackend

    fig = plt.figure()
    ax = plt.axes()

    mevent = mbackend.MouseEvent(
        'button_press_event', fig.canvas, 0.5, 0.5, 1, None)

    xs = np.linspace(0.25, 0.75, 30)
    ys = np.linspace(0.25, 0.75, 30)
    xs, ys = np.meshgrid(xs, ys)

    txt = plt.text(
        0.48, 0.52, 'hello world', ha='center', fontsize=30, rotation=30)
    # uncomment to draw the text's bounding box
    # txt.set_bbox(dict(edgecolor='black', facecolor='none'))

    # draw the text. This is important, as the contains method can only work
    # when a renderer exists.
    plt.draw()

    for x, y in zip(xs.flat, ys.flat):
        mevent.x, mevent.y = plt.gca().transAxes.transform_point([x, y])
        contains, _ = txt.contains(mevent)
        color = 'yellow' if contains else 'red'

        # capture the viewLim, plot a point, and reset the viewLim
        vl = ax.viewLim.frozen()
        ax.plot(x, y, 'o', color=color)
        ax.viewLim.set(vl) 
开发者ID:miloharper,项目名称:neural-network-animation,代码行数:33,代码来源:test_text.py

示例14: test_contains

# 需要导入模块: from matplotlib import backend_bases [as 别名]
# 或者: from matplotlib.backend_bases import MouseEvent [as 别名]
def test_contains():
    import matplotlib.backend_bases as mbackend

    fig = plt.figure()
    ax = plt.axes()

    mevent = mbackend.MouseEvent(
        'button_press_event', fig.canvas, 0.5, 0.5, 1, None)

    xs = np.linspace(0.25, 0.75, 30)
    ys = np.linspace(0.25, 0.75, 30)
    xs, ys = np.meshgrid(xs, ys)

    txt = plt.text(
        0.48, 0.52, 'hello world', ha='center', fontsize=30, rotation=30)
    # uncomment to draw the text's bounding box
    # txt.set_bbox(dict(edgecolor='black', facecolor='none'))

    # draw the text. This is important, as the contains method can only work
    # when a renderer exists.
    fig.canvas.draw()

    for x, y in zip(xs.flat, ys.flat):
        mevent.x, mevent.y = plt.gca().transAxes.transform_point([x, y])
        contains, _ = txt.contains(mevent)
        color = 'yellow' if contains else 'red'

        # capture the viewLim, plot a point, and reset the viewLim
        vl = ax.viewLim.frozen()
        ax.plot(x, y, 'o', color=color)
        ax.viewLim.set(vl) 
开发者ID:holzschu,项目名称:python3_ios,代码行数:33,代码来源:test_text.py

示例15: __on_click

# 需要导入模块: from matplotlib import backend_bases [as 别名]
# 或者: from matplotlib.backend_bases import MouseEvent [as 别名]
def __on_click(self, event: "MouseEvent"):
        if event.button == MouseButton.MIDDLE:
            self.__clear_clicked_elements()
            return
        if event.button not in [MouseButton.LEFT, MouseButton.RIGHT]:
            return
        for rect in self.__ax.patches:
            if not rect.contains(event)[0]:
                continue
            # rect is the rectangle we clicked on!
            self.__clicked_elements[event.button] = rect.element
            self.__update_text()

            return 
开发者ID:jstockwin,项目名称:py-pdf-parser,代码行数:16,代码来源:main.py


注:本文中的matplotlib.backend_bases.MouseEvent方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。