30 lines
994 B
Python
30 lines
994 B
Python
|
from matplotlib import use
|
||
|
# import PySimpleGUI as sg # Same program can be used with tkinter port
|
||
|
import PySimpleGUIQt as sg; use('qt5agg')
|
||
|
import matplotlib.pyplot as plt
|
||
|
|
||
|
"""
|
||
|
Simultaneous PySimpleGUI Window AND a Matplotlib Interactive Window
|
||
|
A number of people have requested the ability to run a normal PySimpleGUI window that
|
||
|
launches a MatplotLib window that is interactive with the usual Matplotlib controls.
|
||
|
It turns out to be a rather simple thing to do. The secret is to add parameter block=False to plt.show()
|
||
|
"""
|
||
|
|
||
|
def draw_plot():
|
||
|
plt.plot([0.1, 0.2, 0.5, 0.7])
|
||
|
plt.show(block=False)
|
||
|
|
||
|
layout = [[sg.Button('Plot'), sg.Cancel(), sg.Button('Popup')]]
|
||
|
|
||
|
window = sg.Window('Have some Matplotlib....', layout)
|
||
|
|
||
|
while True:
|
||
|
event, values = window.read()
|
||
|
if event in (None, 'Cancel'):
|
||
|
break
|
||
|
elif event == 'Plot':
|
||
|
draw_plot()
|
||
|
elif event == 'Popup':
|
||
|
sg.popup('Yes, your application is still running')
|
||
|
window.close()
|