8000 COMPAT: use tkagg backend on PyPy by mattip · Pull Request #9356 · matplotlib/matplotlib · GitHub
[go: up one dir, main page]

Skip to content

COMPAT: use tkagg backend on PyPy #9356

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 12 commits into from
Jan 12, 2018
49 changes: 0 additions & 49 deletions examples/user_interfaces/embedding_in_tk2_sgskip.py

This file was deleted.

47 changes: 17 additions & 30 deletions examples/user_interfaces/embedding_in_tk_sgskip.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,57 +7,44 @@
import matplotlib
matplotlib.use('TkAgg')

from numpy import arange, sin, pi
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2TkAgg
# implement the default mpl key bindings
import numpy as np
from matplotlib.backends.backend_tkagg import (
FigureCanvasTkAgg, NavigationToolbar2TkAgg)
# Implement the default Matplotlib key bindings.
from matplotlib.backend_bases import key_press_handler


from matplotlib.figure import Figure
from six.moves import tkinter as Tk

import sys
if sys.version_info[0] < 3:
import Tkinter as Tk
else:
import tkinter as Tk

root = Tk.Tk()
root.wm_title("Embedding in TK")


f = Figure(figsize=(5, 4), dpi=100)
a = f.add_subplot(111)
t = arange(0.0, 3.0, 0.01)
s = sin(2*pi*t)
root.wm_title("Embedding in Tk")

a.plot(t, s)
fig = Figure(figsize=(5, 4), dpi=100)
t = np.arange(0, 3, .01)
fig.add_subplot(111).plot(t, 2 * np.sin(2 * np.pi * t))


# a tk.DrawingArea
canvas = FigureCanvasTkAgg(f, master=root)
canvas = FigureCanvasTkAgg(fig, master=root) # A tk.DrawingArea.
canvas.draw()
canvas.get_tk_widget().pack(side=Tk.TOP, fill=Tk.BOTH, expand=1)

toolbar = NavigationToolbar2TkAgg(canvas, root)
toolbar.update()
canvas._tkcanvas.pack(side=Tk.TOP, fill=Tk.BOTH, expand=1)


def on_key_event(event):
print('you pressed %s' % event.key)
key_press_handler(event, canvas, toolbar)

canvas.mpl_connect('key_press_event', on_key_event)
canvas.mpl_connect(
"key_press_event", lambda event: print("you pressed {}".format(event.key)))
canvas.mpl_connect(
"key_press_event", lambda event: key_press_handler(event, canvas, toolbar))


def _quit():
root.quit() # stops mainloop
root.destroy() # this is necessary on Windows to prevent
# Fatal Python Error: PyEval_RestoreThread: NULL tstate

button = Tk.Button(master=root, text='Quit', command=_quit)
button = Tk.Button(master=root, text="Quit", command=_quit)
button.pack(side=Tk.BOTTOM)

Tk.mainloop()
# If you put root.destroy() here, it will cause an error if
# the window is closed with the window manager.
# If you put root.destroy() here, it will cause an error if the window is
# closed with the window manager.
0